Run supervisor as a grunt task for easy configuration and integration with the rest of your workflow.
This Grunt task is freely inspired from the grunt-nodemon by Chris Wen.
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, install this plugin with this command:
npm install grunt-supervisor --save-dev
Then add this line to your project's Gruntfile.js
gruntfile:
grunt.loadNpmTasks( "grunt-supervisor" );
In your project's Gruntfile, add a section named supervisor
to the data object passed into grunt.initConfig()
.
The minimal usage of grunt-supervisor runs with a script
specified:
supervisor: {
target: {
script: "index.js"
}
}
supervisor: {
target: {
script: "index.js",
options: {
args: [ "dev" ]
watch: [ "bin" ],
ignore: [ "test" ],
pollInterval: 500,
extensions: [ "js,jade" ],
exec: "node",
debug: true,
inspect: true,
debugBrk: true,
harmony: true,
noRestartOn: "exit",
forceWatch: true,
quiet: true,
forceSync: true
}
}
}
Type: String
Script that supervisor runs and restarts when changes are detected.
The following options corresponds to the available options from supervisor. If you don't pass these options to the grunt tasks, the default values of supervisor will be used.
Type: Array
of Strings
List of arguments to be passed to your script.
Type: Array
of Strings
List of folders or js files to watch for changes.
Type: Array
of Strings
List of folders to ignore for changes.
Type: Number
of milliseconds
How often to poll watched files for changes.
Type: Array
of Strings
List of file extensions to watch for changes.
Type: String
The executable that runs the specified script.
Type: Boolean
Starts node with --debug
flag.
Type: Boolean
Starts node with --debug-brk
flag.
Type: Boolean
Starts node with --inspect
flag.
Type: Boolean
Starts node with --harmony
flag.
Type: String
, "error"
or "exit"
Don't automatically restart the supervised program if it ends.
Supervisor will wait for a change in the source files.
If "error", an exit code of 0 will still restart.
If "exit", no restart regardless of exit code.
Type: Boolean
Use fs.watch instead of fs.watchFile.
This may be useful if you see a high cpu load on a windows machine.
Type: Boolean
Suppress DEBUG messages
Type: Boolean
Avoid the default async
behavior. Set to true
if there is another task like "watch" folowing this one.
You can use supervisor and a watch
task using the forceSync
option.
For more advanced use, please consider the use of grunt-concurrent task.
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.
Many thanks to them. :)
- 0.1.0: Initial release (28/02/14)
- 0.2.0: Add
forceSync
option (23/04/14)
Write tests :)
Copyright (c) 2014 Leny Licensed under the MIT license.