webpack-build-notifier v 2.1.0
使用node-notifier模块来显示系统级的 Webpack 构建错误和警告通知。
安装
npm install webpack-build-notifier --save-dev
1
在 Webpack 配置文件中:
// webpack.config.js
var WebpackBuildNotifierPlugin = require('webpack-build-notifier');
module.exports = {
// ... 省略 ...
plugins: [
new WebpackBuildNotifierPlugin({
title: "My Project Webpack Build",
logo: path.resolve("./img/favicon.png"),
suppressSuccess: true
})
],
// ... 省略 ...
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
配置项
项目 | 描述 |
---|---|
title | 通知的标题。默认值是Webpack Build |
logo | 通知中 Logo 的图片绝对路径。可选。 |
sound | 通知显示时的提示音。如果设置为false 则不会播放声音。这里可以查到可用的声音,默认采用了Submarine |
successSound | 成功类通知的提示音。默认值为sound 配置项的值。设置为false 则静音。该配置项的优先级高于sound 。 |
warningSound | 警告类通知的提示音。默认值为sound 配置项的值。设置为false 则静音。该配置项的优先级高于sound 。 |
failureSound | 失败类通知的提示音。默认值为sound 配置项的值。设置为false 则静音。该配置项的优先级高于sound 。 |
compilationSound | 编译通知的提示音。默认值为sound 配置项的值。设置为false 则静音。该配置项的优先级高于sound 。 |
onCompileStart | 启动编译时调用的函数。可选。该函数接收 1 个参数:{webpack.compilation.Compilation} compilation - webpack Compilation 实例。注意suppressCompileStart 必须设置为false |
onComplete | 编译完成时调用的函数。该函数接收 2 个参数: {webpack.compilation.Compilation} compilation - webpack Compilation 实例。 {CompilationStatus} status - 值为 success 、warning 、error 中的一个。 |
suppressSuccess | 定义成功类通知的显示时机。可以设置为以下值: - false 每次成功编译都显示成功通知(默认)。 - true 只在首次成功编译和编译失败后再次编译成功后显示。 - always 不显示成功通知。 - initial 和true 类似,但首次成功编译不显示通知。 |
showDuration | true 则显示成功编译的事件,默认值为false . |
suppressWarning | true 表示禁止警告类通知,默认值为false |
suppressCompileStart | true 表示禁止编译开始时的通知(默认值),否则为false |
activateTerminalOnError | 设置为true 的时候会在发生错误时激活终端窗口。需要注意的是该项(目前)只在 Mac OSX 上起效。默认值为false ,即不管该配置项的值为多少,只要单击通知,那么终端窗口总是可以显示在最前面。 |
successIcon | 成功类通知的图标的绝对地址。 默认是 |
warningIcon | 成功类通知的图标的绝对地址。 默认是 |
failureIcon | 成功类通知的图标的绝对地址。 默认是 |
messageFormatter | 函数,返回格式化后的通知信息。 函数接收2个参数: {Object} error/warning - 原始的错误和警告对象。{String} filepath - 出现错误/警告(如果有的话)的文件路径。该函数必须返回字符串。默认的 messageFormatter 将显错误/警告信息的文件名称。信息最大长度256个字符。 |
notifyOptions | node-notifier文档相关的其它配置项。请注意这里的配置项将仅作用于 成功/警告/错误 通知信息(不包括“编译开始”通知)。title 、message 、sound 、contentImage(logo) 、icon 配置项会被忽略。毕竟这些是通过WebpackBuildNotifier 配置项设置的。 |
onClick | 当通知被点击时触发。默认情况下,它会激活终端。 |
onTimeout | 当通知被关闭或达到显示时间上限时触发。默认是undefined 。 |
TypeScript
该项目是由TypeScript编写的,因而内置了类型生命。如果您的项目的webpack配置也使用了TypeScript(比如:webpack.config.ts),可以利用这一点。
// webpack.config.ts
import * as webpack from 'webpack'
import * as WebpackBuildNotifierPlugin from 'webpack-build-notifier';
const config: webpack.Configuration = {
// ... 省略 ...
plugins: [
new WebpackBuildNotifierPlugin({
title: "My Project Webpack Build",
logo: path.resolve("./img/favicon.png"),
suppressSuccess: true
})
],
// ... 省略 ...
};
export default config;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17