grunt-rendr-requirejs
v1.0.0
Published
Use RequireJS to package up your modules for use with Rendr (github.com/airbnb/rendr).
Downloads
63
Readme
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.