https://github.com/leny/grunt-supervisor
Run supervisor as a grunt task for easy configuration and integration with the rest of your workflow
https://github.com/leny/grunt-supervisor
Last synced: about 1 year ago
JSON representation
Run supervisor as a grunt task for easy configuration and integration with the rest of your workflow
- Host: GitHub
- URL: https://github.com/leny/grunt-supervisor
- Owner: leny
- License: mit
- Created: 2014-02-28T15:31:34.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2021-04-29T19:58:10.000Z (about 5 years ago)
- Last Synced: 2025-06-22T09:43:02.006Z (about 1 year ago)
- Language: JavaScript
- Size: 205 KB
- Stars: 7
- Watchers: 2
- Forks: 3
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE-MIT
Awesome Lists containing this project
README
# grunt-supervisor
  
> Run [supervisor](https://github.com/isaacs/node-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](https://github.com/ChrisWren/grunt-nodemon) by [Chris Wen](https://github.com/ChrisWren).*
## Getting Started
If you haven't used grunt before, be sure to check out the [Getting Started](http://gruntjs.com/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:
```shell
npm install grunt-supervisor --save-dev
```
Then add this line to your project's `Gruntfile.js` gruntfile:
```javascript
grunt.loadNpmTasks( "grunt-supervisor" );
```
## The "supervisor" task
In your project's Gruntfile, add a section named `supervisor` to the data object passed into `grunt.initConfig()`.
### Minimal usage
The minimal usage of **grunt-supervisor** runs with a `script` specified:
```js
supervisor: {
target: {
script: "index.js"
}
}
```
### Usage with all available options
```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
}
}
}
```
#### Required property
##### script
Type: `String`
Script that supervisor runs and restarts when changes are detected.
#### Options
The following options corresponds to the available options from [supervisor](https://github.com/isaacs/node-supervisor). If you don't pass these options to the grunt tasks, the default values of supervisor will be used.
##### args
Type: `Array` of `Strings`
List of arguments to be passed to your script.
##### watch
Type: `Array` of `Strings`
List of folders or js files to watch for changes.
##### ignore
Type: `Array` of `Strings`
List of folders to ignore for changes.
##### pollInterval
Type: `Number` of **milliseconds**
How often to poll watched files for changes.
##### extensions
Type: `Array` of `Strings`
List of file extensions to watch for changes.
##### exec
Type: `String`
The executable that runs the specified script.
##### debug
Type: `Boolean`
Starts node with `--debug` flag.
##### debugBrk
Type: `Boolean`
Starts node with `--debug-brk` flag.
##### inspect
Type: `Boolean`
Starts node with `--inspect` flag.
##### harmony
Type: `Boolean`
Starts node with `--harmony` flag.
##### noRestartOn
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.
##### forceWatch
Type: `Boolean`
Use fs.watch instead of fs.watchFile.
This may be useful if you see a high cpu load on a windows machine.
##### quiet
Type: `Boolean`
Suppress DEBUG messages
##### forceSync
Type: `Boolean`
Avoid the default `async` behavior. Set to `true` if there is another task like "watch" folowing this one.
### Using supervisor with a `watch` task.
You can use supervisor and a `watch` task using the `forceSync` option.
For more advanced use, please consider the use of [grunt-concurrent](https://github.com/sindresorhus/grunt-concurrent) task.
## Contributing
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](http://gruntjs.com/).
### Contributors
* [ajcrites](https://github.com/ajcrites)
* [akagomez](https://github.com/akagomez)
* [relvao](https://github.com/relvao)
* [danielkappelle](https://github.com/danielkappelle)
Many thanks to them. :)
## Release History
* **0.1.0**: Initial release (*28/02/14*)
* **0.2.0**: Add `forceSync` option (*23/04/14*)
## TODO
Write tests :)
## License
Copyright (c) 2014 Leny
Licensed under the MIT license.