A Webpack plugin that uses the node-notifier module to display OS-level notifications for Webpack build errors and warnings.
Are you tired of having to constantly switch between your IDE and terminal window to see whether your latest edits resulted in a failed build? Why didn't your latest changes get hot-loaded? Was there a syntax error or failed unit test? With this plugin, you will always be apprised of build problems without having to keep an eye on your terminal window.
To use, install the webpack-build-notifier package npm install webpack-build-notifier --save-dev
and add the plugin to your Webpack configuration file:
// webpack.config.js
var WebpackBuildNotifierPlugin = require('webpack-build-notifier');
module.exports = {
// ... snip ...
plugins: [
new WebpackBuildNotifierPlugin({
title: "My Project Webpack Build",
logo: path.resolve("./img/favicon.png"),
suppressSuccess: true
})
],
// ... snip ...
}
The notification title. Defaults to Webpack Build.
The absolute path to the project logo to be displayed as a content image in the notification. Optional.
The sound to play for notifications. Set to false to play no sound. Valid sounds are listedin the node-notifier project, here. Defaults to Submarine.
The sound to play for success notifications. Defaults to the value of the sound configuration option. Set to false to play no sound for success notifications. Takes precedence over the sound configuration option.
The sound to play for warning notifications. Defaults to the value of the sound configuration option. Set to false to play no sound for warning notifications. Takes precedence over the sound configuration option.
The sound to play for failure notifications. Defaults to the value of the sound configuration option. Set to false to play no sound for failure notifications. Takes precedence over the sound configuration option.
True to suppress the success notifications, otherwise false (default). Note that the success notification will always be shown following a failed build regardless of this setting.
True to suppress the warning notifications, otherwise false (default).
True to activate (focus) the terminal window when a compilation error occurs. Note that this only works on Mac OSX (for now). Defaults to false. Regardless of the value of this config option, the terminal window can always be brought to the front by clicking on the notification.
The absolute path to the icon to be displayed for success notifications. Defaults to the included ./icons/success.png.
The absolute path to the icon to be displayed for warning notifications. Defaults to the included ./icons/warning.png.
The absolute path to the icon to be displayed for failure notifications. Defaults to the included ./icons/failure.png.
A function which returns a formatted notification message. The function is passed two parameters:
- {Object} error/warning - The raw error or warning object.
- {String} filepath - The path to the file containing the error/warning (if available).
A function called when the notification is clicked. By default it activates the Terminal application.
- TBD
After publishing this package I discovered a couple other similar plugins that are worth looking into:
Given the purpose and similarities, this project probably should have been a fork of one of these.
- Added messageFormatter configuration option to allow custom formatting of notification message.
- Bugfix for #6, more null checking.
- Bugfix for #6; added null check for error messages.
- Added reference to strip-ansi NPM package to remove CLI color formatting from notifications.
- Added new onClick configuration option to allow for specifying of notification click behavior.
- Added new successSound and failureSound configuration options to allow different sounds depending upon the notification type. The sound configuration is still supported, but these two new options will take precedence.
- Fixed sound configuration option to allow "false" value to disable sound.
- Added suppressWarning configuration option.