webpack-build-notifier v 2.1.0

插件的GitHub

使用node-notifier模块来显示系统级的 Webpack 构建错误和警告通知。

image

安装

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

配置项

项目 描述
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 - 值为 successwarningerror 中的一个。
suppressSuccess 定义成功类通知的显示时机。可以设置为以下值:
- false 每次成功编译都显示成功通知(默认)。
- true 只在首次成功编译和编译失败后再次编译成功后显示。
- always 不显示成功通知。
-initialtrue类似,但首次成功编译不显示通知。
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文档相关的其它配置项。请注意这里的配置项将仅作用于 成功/警告/错误 通知信息(不包括“编译开始”通知)。titlemessagesoundcontentImage(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