grunt-rendr-requirejs

1.0.0 • Public • Published

grunt-rendr-requirejs

Adopted grunt-rendr-stitch to use with RequireJS (work in progress).

Use RequireJS to package up your modules for use with Rendr (https://github.com/rendrjs/rendr).

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-rendr-requirejs --save-dev

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

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

The "rendr_requirejs" task

Overview

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

grunt.initConfig({
  rendr_requirejs: {
    options: {
      appDir: 'assets',
      mainConfigFile: 'assets/common.js',
      dir: 'public',
      node_modules:
      [
        {name: 'async', location: 'async/lib', main: 'async.js'}
      ],
      modules: [
        {
          name: '../common',
          include:
          [
            'jquery',
            'async',
            'shared/module',
            'app/controller/Base',
            'app/model/Base'
          ],
        },
        {
            name: '../bundle',
            include: ['app/app'],
            exclude: ['../common']
        },
        {
            name: '../other-bundle',
            include: ['../other/foo'],
            exclude: ['../common']
        }
      ]
    }
  }
});

We can then use RequireJS in the browser to require any of the source files.

require(['app/views/user_show_view'], function(UserShowView)
{
  ...
});

Together with amdefine could be used for requiring modules in both Node.js and in the browser. For example:

if (typeof define !== 'function') {
  var define = require('amdefine')(module);
}
 
define(['../base'], function(BaseView) {
 
});

Options

options.node_modules

Type: Object Default value: {}

An object containing a list of node modules to pass as options.packages to requirejs.optimize().

options.node_modules is optional and can be omitted.

Release History

1.0.0

Update Rendr version to 1.0.1

0.3.3

Exposed unfoldPath, getModulePaths and findDependencies for better integration. Added _keepFullPath option to return list of fullpath files, useful for testing. (Experimental)

0.3.1

Exposed updateConfigNode method for grunt tasks. (Experimental) Added reset argument to updateConfigNode. (Experimental)

0.3.0

Added shallow option for modules multi-module and single file bundling. (Experimental) Added short form modules listing when shallow options is used.

0.2.1

Added content hashing function (Experimental).

0.2.0

Added glob parsing in include (root) blocks with mapping (paths) support (Experimental).

0.1.0

Changed resolution of node_modules section, now it will check dependencies of the rendr module and if not found, will travel up directory tree, same as standard dependency resolution.

0.0.1

grunt-rendr-stitch mangled into grunt-rendr-requirejs.

Package Sidebar

Install

npm i grunt-rendr-requirejs

Weekly Downloads

5

Version

1.0.0

License

none

Last publish

Collaborators

  • alexindigo
  • purusho