clean-webpack-plugin v 3.0.0
用于删除/清理构建文件夹的 webpack 插件。
注意:经测试支持 Node v8+ 和 webpack v3+。
关于
默认情况下,这个插件会删除webpack
的output.path
中的所有文件,以及每次成功重新构建后所有未使用的资源。
安装
npm install --save-dev clean-webpack-plugin
1
使用
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const webpackConfig = {
plugins: [
/**
* webpack output.path 目录中的所有文件将被删除一次,但目录本身不会被删除。
* 如果使用 webpack 4+ 的默认配置,<PROJECT_DIR>/dist/下的所有内容都将被删除。
* 使用 cleanOnceBeforeBuildPatterns 可以覆盖这个行为。
*
* 在重新构建期间,所有不再使用的 webpack 资源将被自动删除。
*
* 参见下文的 配置项和默认值
*/
new CleanWebpackPlugin(),
],
};
module.exports = webpackConfig;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
配置项和默认值
new CleanWebpackPlugin({
// 模拟文件的删除
//
// default: false
dry: true,
// 将日志写入控制台
// (当 dry 的值为 true时,总是启用)
//
// default: false
verbose: true,
// 重新构建时自动删除所有未使用的 webpack 资源
//
// default: true
cleanStaleWebpackAssets: false,
// 不允许移除当前 webpack 资源。
//
// default: true
protectWebpackAssets: false,
// **警告⚠️**
//
// 对于下面的这些配置项:
//
// 它们并不安全...因此首先用 dry: true 测试着。
//
//
// 相对于 webpack 的 output.path 目录。
//
// 如果在 webpack 的 output.path 目录之外,请使用完整路径。
// path.join(process.cwd(), 'build/**/*')
//
// 这些配置项扩展了 del 模式的匹配 API。
//
// 参见 https://github.com/sindresorhus/del#patterns 了解通配符匹配规整
//
//
// 在 Webpack 编译之前删除文件一次
// 重新构建不包括在内(watch 模式)
//
// 使用 ! 通配符来排除文件
//
//
// default: ['**/*']
cleanOnceBeforeBuildPatterns: ['**/*', '!static-files*'],
cleanOnceBeforeBuildPatterns: [], // 禁用 cleanOnceBeforeBuildPatterns
// 在每次生成(包括 watch 模式)后删除与此模式匹配的文件。
// 应用于不直接由 Webpack 创建的文件。
//
// 使用 ! 通配符来排除文件
//
// default: []
cleanAfterEveryBuildPatterns: ['static*.*', '!static1.js'],
// Allow clean patterns outside of process.cwd()
// 允许清除 process.cwd() 之外的通配符。
//
// 需要显式设置 dry 配置项
//
// default: false
dangerouslyAllowCleanPatternsOutsideProject: true,
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Webpack配置示例
这是WebPack插件文档的修改版本,其中包含了 Clean 插件。
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const webpack = require('webpack');
const path = require('path');
module.exports = {
entry: './path/to/my/entry/file.js',
output: {
/**
* 若是不作任何配置,clean-webpack-plugin 将删除下面目录里面的文件。
*/
path: path.resolve(process.cwd(), 'dist'),
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
loader: 'babel-loader',
},
],
},
plugins: [
new webpack.ProgressPlugin(),
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({ template: './src/index.html' }),
],
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27