National Preventative Mechanism


    0.0.9 • Public • 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.

    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:


    The "requirejs-bundle" task


    In your project's Gruntfile, add a section named requirejs-bundle to the data object passed into 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.



    Type: String Default value: undefined

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


    Type: String Default value: '*'

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


    Type: String Default value: '.'

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


    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.

      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"]);


    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


    npm i grunt-requirejs-bundle

    DownloadsWeekly Downloads






    Last publish


    • cajones