233 lines
9.8 KiB
Markdown
233 lines
9.8 KiB
Markdown
## grunt-notify [](https://travis-ci.org/dylang/grunt-notify) [](https://www.npmjs.org/package/grunt-notify)
|
||
|
||
> Automatic desktop notifications for Grunt errors and warnings. Supports OS X, Windows, Linux.
|
||
|
||
|
||
|
||
### Screenshots
|
||
|
||
| OS | Tool | Screenshots |
|
||
|---|---|---|
|
||
| OS X | OS X Notification Center |  |
|
||
| OS X | Growl for Mac |  |
|
||
| Windows 8 | Windows 8 notifications |  |
|
||
| Windows | Growl for Windows |  |
|
||
| Windows | Snarl |  |
|
||
| Linux | Notify-Send |  |
|
||
|
||
|
||
|
||
### Getting Started
|
||
|
||
This plugin recommends Grunt `0.4.1` or newer.
|
||
|
||
### Installing
|
||
|
||
```bash
|
||
npm install grunt-notify --save-dev
|
||
```
|
||
|
||
Once that's done, add this line to your project's `Gruntfile.js`:
|
||
|
||
```js
|
||
grunt.loadNpmTasks('grunt-notify');
|
||
```
|
||
|
||
|
||
|
||
**That's all you need for automatic notifications.**
|
||
|
||
### Notify_Hooks Options
|
||
|
||
If you want change the automatic messaging configure a task called `notify_hooks`.
|
||
|
||
```js
|
||
grunt.initConfig({
|
||
// This is optional!
|
||
notify_hooks: {
|
||
options: {
|
||
enabled: true,
|
||
max_jshint_notifications: 5, // maximum number of notifications from jshint output
|
||
title: "Project Name", // defaults to the name in package.json, or will use project directory's name
|
||
success: false, // whether successful grunt executions should be notified automatically
|
||
duration: 3 // the duration of notification in seconds, for `notify-send only
|
||
}
|
||
}
|
||
});
|
||
|
||
// Load the task
|
||
grunt.loadNpmTasks('grunt-notify');
|
||
|
||
// This is required if you use any options.
|
||
grunt.task.run('notify_hooks');
|
||
```
|
||
|
||
|
||
### Showing Specific Notifications
|
||
|
||
Sometimes you want to show messages like "Uglify complete" or "Project Deployed" - that's easy to do too.
|
||
|
||
|  |
|
||
|:-------------:|
|
||
| Custom Message - Grunt |
|
||
|
||
|  |
|
||
|:-------------:|
|
||
| Custom Message - Notification Center |
|
||
|
||
|  |
|
||
|:-------------:|
|
||
| Custom Message - Notify-Send |
|
||
|
||
```js
|
||
grunt.initConfig({
|
||
notify: {
|
||
task_name: {
|
||
options: {
|
||
// Task-specific options go here.
|
||
}
|
||
},
|
||
watch: {
|
||
options: {
|
||
title: 'Task Complete', // optional
|
||
message: 'SASS and Uglify finished running', //required
|
||
}
|
||
},
|
||
server: {
|
||
options: {
|
||
message: 'Server is ready!'
|
||
}
|
||
}
|
||
}
|
||
});
|
||
|
||
grunt.loadNpmTasks('grunt-notify');
|
||
|
||
// simplified example
|
||
grunt.registerTask('server', [
|
||
'uglify',
|
||
'sass',
|
||
'server',
|
||
'notify:server'
|
||
]);
|
||
```
|
||
|
||
#### Options
|
||
* `title` _optional_ Notification title
|
||
* `message` _required_ Notification message
|
||
|
||
|
||
|
||
### Tests
|
||
|
||
Run `grunt` to lint and run the tests.
|
||
|
||
|
||
### Notification Systems
|
||
|
||
#### Mac
|
||
|
||
##### OS X Notification System
|
||
|
||
*Support Included.*
|
||
|
||
If you are using OS X 10.8 Mountain Lion or newer a notification system is built in, but Apple does not provide a
|
||
notification API that Node can access. Only code written in Objective C and signed in XCode can access it.
|
||
This is not very friendly for Node users so we are using the tiny signed MIT-licensed native application
|
||
[Terminal Notifier](https://github.com/alloy/terminal-notifier) from [Eloy Durán](https://github.com/alloy).
|
||
I've changed the default icon which is owned by Apple to the Grunt logo.
|
||
|
||
##### Growl for OS X
|
||
|
||
*Requires growlnotify for OS X.*
|
||
|
||
Install **growlnotify** from the [Growl Downloads Page](http://growl.info/downloads). This will install in `/usr/local/bin/growlnotify`.
|
||
|
||
#### Windows
|
||
|
||
##### Snarl
|
||
|
||
*Included with Snarl.*
|
||
|
||
If you have downloaded and installed Snarl from [Snarl's web site](http://snarl.fullphat.net/) you'll have the commandline tool heysnarl as well.
|
||
|
||
##### Growl for Windows
|
||
|
||
*Requires growlnotify for Windows.*
|
||
|
||
Install **growlnotify** from the [growlnotify Page](http://www.growlforwindows.com/gfw/help/growlnotify.aspx).
|
||
|
||
##### Windows 8.1 Notifications
|
||
|
||
*Nothing to install.*
|
||
|
||
Create a pull request!
|
||
|
||
#### Linux
|
||
|
||
##### Notify-Send
|
||
|
||
*Nothing to install.*
|
||
|
||
I created an Ubuntu virtual machine and it had `notify-send` in the path.
|
||
|
||
I don't use Linux frequently so I don't know if this utility is available for other distros.
|
||
|
||
[notify-send man page](http://manpages.ubuntu.com/manpages/gutsy/man1/notify-send.1.html).
|
||
|
||
`notify-send` has an addition `duration` option which takes a number seconds. The default is 3 seconds.
|
||
|
||
Duration doesn't work natively on some versions of Ubuntu.
|
||
|
||
Here is a fix: http://askubuntu.com/questions/128474/how-to-customize-on-screen-notifications
|
||
|
||
#### Chrome
|
||
|
||
*Not supported yet.*
|
||
|
||
Chrome has a notification system but I'm not sure if it's possible to use from a command-line Node app. Somebody could
|
||
probably create a Chrome Plugin helper for this.
|
||
|
||
#### Notifications aren't showing
|
||
|
||
Run `grunt -v` (for `verbose` mode) to show `grunt-notify` debug messages. It will tell you what notification system
|
||
it thinks it can use. Create an issue and I'll look into it asap.
|
||
|
||
|
||
|
||
### About the Author
|
||
|
||
Hi! Thanks for checking out this project! My name is **Dylan Greene**. When not overwhelmed with my two young kids I enjoy contributing
|
||
to the open source community. I'm also a tech lead at [Opower](http://opower.com). [](https://github.com/dylang) [](https://twitter.com/dylang)
|
||
|
||
Here's some of my other Node projects:
|
||
|
||
| Name | Description | npm Downloads |
|
||
|---|---|---|
|
||
| [`space‑hogs`](https://github.com/dylang/space-hogs) | Discover surprisingly large directories from the command line | [](https://www.npmjs.org/package/space-hogs) |
|
||
| [`npm‑check`](https://github.com/dylang/npm-check) | Check for outdated, incorrect, and unused dependencies. | [](https://www.npmjs.org/package/npm-check) |
|
||
| [`shortid`](https://github.com/dylang/shortid) | Amazingly short non-sequential url-friendly unique id generator. | [](https://www.npmjs.org/package/shortid) |
|
||
| [`rss`](https://github.com/dylang/node-rss) | RSS feed generator. Add RSS feeds to any project. Supports enclosures and GeoRSS. | [](https://www.npmjs.org/package/rss) |
|
||
| [`grunt‑prompt`](https://github.com/dylang/grunt-prompt) | Interactive prompt for your Grunt config using console checkboxes, text input with filtering, password fields. | [](https://www.npmjs.org/package/grunt-prompt) |
|
||
| [`xml`](https://github.com/dylang/node-xml) | Fast and simple xml generator. Supports attributes, CDATA, etc. Includes tests and examples. | [](https://www.npmjs.org/package/xml) |
|
||
| [`changelog`](https://github.com/dylang/changelog) | Command line tool (and Node module) that generates a changelog in color output, markdown, or json for modules in npmjs.org's registry as well as any public github.com repo. | [](https://www.npmjs.org/package/changelog) |
|
||
| [`grunt‑attention`](https://github.com/dylang/grunt-attention) | Display attention-grabbing messages in the terminal | [](https://www.npmjs.org/package/grunt-attention) |
|
||
| [`observatory`](https://github.com/dylang/observatory) | Beautiful UI for showing tasks running on the command line. | [](https://www.npmjs.org/package/observatory) |
|
||
| [`anthology`](https://github.com/dylang/anthology) | Module information and stats for any @npmjs user | [](https://www.npmjs.org/package/anthology) |
|
||
| [`grunt‑cat`](https://github.com/dylang/grunt-cat) | Echo a file to the terminal. Works with text, figlets, ascii art, and full-color ansi. | [](https://www.npmjs.org/package/grunt-cat) |
|
||
|
||
_This list was generated using [anthology](https://github.com/dylang/anthology)._
|
||
|
||
|
||
### License
|
||
Copyright (c) 2016 Dylan Greene, contributors.
|
||
|
||
Released under the [MIT license](https://tldrlegal.com/license/mit-license).
|
||
|
||
Screenshots are [CC BY-SA](http://creativecommons.org/licenses/by-sa/4.0/) (Attribution-ShareAlike).
|
||
|
||
***
|
||
_Generated using [grunt-readme](https://github.com/assemble/grunt-readme) with [grunt-templates-dylang](https://github.com/dylang/grunt-templates-dylang) on Sunday, February 28, 2016._
|
||
_To make changes to this document look in `/templates/readme/`
|
||
|