npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

grunt-requirejs-bundle

v0.0.9

Published

A Grunt plugin to bundle one or more AMD packages into a single define statement. This means you can just require the bundle and get all the packages loaded via requirejs.

Downloads

24

Readme

grunt-requirejs-bundle

A Grunt plugin to bundle one or more AMD packages into a single define statement. This means you can just require the bundle and get all the packages loaded via requirejs.

Getting Started

This plugin requires Grunt ~0.4.1

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-requirejs-bundle --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-requirejs-bundle');

The "requirejs-bundle" task

Overview

In your project's Gruntfile, add a section named requirejs-bundle to the data object passed into grunt.initConfig().

grunt.initConfig({
  'requirejs-bundle': {
    components: {
      src: 'src/components/',
      dest: 'tmp/components.js'   
    },
    extensions: {
      src: 'src/extensions/',
      dest: 'tmp/extensions.js'   
    },
  },
})

The requirejs-bundle task will enumerate all Bower packages (containing bower.json) in the provided src directory and build them into a single AMD statement.

define(["package1", "package2", "package3" /*and so on*/])

Package Main File

The path to the main javascript file is identified by the 'main' property in each packages bower.json, if this is not present then index.js will be assumed.

Options

options.baseUrl

Type: String Default value: undefined

Paths of source files globbed in the src parameter can be treated as relative to this path.

options.include

Type: String Default value: '*'

Packages that are bundled with this task are only included if their name matches this grunt filespec pattern.

options.moduleName

Type: String Default value: '.'

The AMD call will be called with this as the first parameter.

options.requireCall

Type: String Default value: 'require' Possible values: 'require' or 'define'

The requirejs-bundle task will emit either an AMD require statement or an AMD define. The default is an AMD require.

define("module-name", ["package1", "package2", "package3" /*and so on*/])

Options Example

In this example, custom options are used bundle all the packages in the components directory into a single AMD module called 'my-components', the module is going to be compiled by requirejs with the baseUrl set to 'src', so we also set the 'requirejs-bundle' baseUrl to make the paths the same.

grunt.initConfig({
  requirejs_bundle: {
    src: 'src/components/',
    dest: 'tmp/my-components.js'
    options: {
      moduleName: 'my-components',
      baseUrl: 'src'
    }
  },
})

Assuming we have a two bower packages (package1 and package2) in the components directory, the resulting AMD module will look like this:-

define("my-components", ["components/package1/index", "components/package1/index"]);

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

  • 0.0.8 - Fixed a bug that added the module name to require() calls
  • 0.0.7 - Added support for requireCall option
  • 0.0.6 - expand the full package name
  • 0.0.5
  • 0.0.4
  • 0.0.3
  • 0.0.2
  • 0.0.1