grunt-develop
Run a Node.js application for development, with support for auto-reload.
Notes:
- Requires Grunt >= 0.4.1 && Node.js >= 0.10.0
Does not provide a file-watch, grunt-contrib-watch is helpful here- No need to modify/export your server or alter your applications code
Non-blocking (the task completes immediately and the application will un in the background);Run as last taskReloads cleanly the application when the task is called again, allowing for auto-reload.
Contributing
This project has a lot of active contributors and users. Please submit a test along with any changes made. Thanks!
Install
$ npm install grunt-develop
Basic Gruntfile.js Example
module.exports = function(grunt) {
grunt.initConfig({
develop: {
server: {
file: 'app.js',
nodeArgs: ['--debug'], // optional
args: ['appArg1', 'appArg2'] // optional
env: { NODE_ENV: 'development'} // optional
}
}
});
grunt.loadNpmTasks('grunt-develop');
grunt.registerTask('default', ['develop']);
};
Coffeescript App Example
You may also have develop automatically restart coffeescript based node
applications by using the cmd
option. This option allows the user to
specify which command/executable to use when restarting the server.
module.exports = (grunt) ->
grunt.initConfig
develop:
server:
file: 'app.coffee'
cmd: 'coffee'
grunt.loadNpmTasks 'grunt-develop'
grunt.registerTask 'default', ['develop']
A more complex Gruntfile.js
To support auto-reload on changes, for example:
module.exports = function(grunt) {
grunt.initConfig({
watch: {
js: {
files: [
'app.js',
'routes/**/*.js',
'lib/*.js'
],
tasks: ['develop'],
options: { nospawn: true }
}
},
develop: {
server: {
file: 'app.js'
}
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-develop');
grunt.registerTask('default', ['develop']);
};
The nospawn
is required to keep the grunt context in which grunt-develop
is running
your application.
Then you can run grunt as the following and get automatic restart of the application on file changes:
$ grunt
You may add any other task in the watch, like JS linting, asset compiling, etc. and customize the watch to your needs. See grunt-contrib-watch.
License (MIT)
Copyright (c) 2013, Edward Hotchkiss.