grunt-load-options
This Grunt plugin provides a very simple way to modularize your Gruntfile. Put
plugin configuration options in grunt/config
and tasks/aliases in
grunt/tasks
. Use JavaScript, CoffeeScript, or JSON.
In other words, stop fussing with your Gruntfile whenever you start a new
project. Instead, just copy over the files you need. See this project’s
Gruntfile and grunt
folder for an example.
Getting Started
This plugin requires Grunt >=0.4.0
.
npm install --save-dev grunt-load-options
Once the plugin has been installed, it can be enabled in your Gruntfile.js
(or use load-grunt-tasks and skip this step):
grunt;
Example usage
Use this plugin in conjunction with load-grunt-tasks for a nice, clean, static Gruntfile and easily portable Grunt options and tasks:
module { grunt;};
That’s it! That’s your entire Gruntfile, forever, for every project. Behind
the scenes, this plugin loads your plugin configuration and tasks from the
grunt
subfolder.
Plugin options
To configure a Grunt plugin, create a file in grunt/config
or grunt/options
(either works). The name of the file should correspond to the property of the
configuration object we want to define. For example, if you want to configure
grunt-contrib-jshint, create a file named jshint.js
:
moduleexports = all: 'grunt/**/*.js' 'tasks/**/*.js' options: jshintrc: '.jshintrc' ;
Or just provide JSON! (Make sure to give your file a .json
extension.)
If you need access to the grunt object, wrap it in a function with grunt
as
a parameter and return your options object. Here’s pkg.js
:
module { return gruntfile;};
You can also use CoffeeScript. (Make sure to give your file a .coffee
extension.)
= gruntfilereadJSON "package.json"
Tasks and aliases
To create a task or alias, create a file in grunt/tasks
or grunt/aliases
:
Every task needs access to the grunt object, so wrap it in a function with
grunt
as a parameter. No need to return anything, though.
module { grunt;};
CoffeeScript works here, too:
= consolelog grunttemplateprocess "grunt-load-options v<%= pkg.version %>"
Custom folder
Point the plugin to a different folder using the optional options parameter.
module { grunt folder: '~/.grunt-options';};