其实 clean-webpack-plugin 很容易知道它的做用,就是来清除文件的。javascript
通常这个插件是配合 webpack -p
这条命令来使用,就是说在为生产环境编译文件的时候,先把 build或dist
(就是放生产环境用的文件) 目录里的文件先清除干净,再生成新的。css
若是还不理解为何要用它,就看看下面的例子就能够知道的。html
webpack.config.jsjava
const path = require('path')
...
module.exports = {
entry: {
"app.bundle": './src/app.js'
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].[chunkhash].js'
},
...
};
复制代码
在终端上运行:webpack
$ npm run prod
复制代码
看看 dist
目录:git
dist
├── app.bundle.e56abf8d6e5742c78c4b.js
├── index.html
└── style.css
复制代码
你再把 src/app.js
改改内容,而后再执行 npm run prod
。github
再多运行几回,生成的带 hash 的 app.bundle.js
文件就会不少。web
dist
├── app.bundle.0e380cea371d050137cd.js
├── app.bundle.259c34c1603489ef3572.js
├── app.bundle.e56abf8d6e5742c78c4b.js
├── index.html
└── style.css
复制代码
这些带 hash 的 app.bundle.js
只有最新的才有用,其余的都没用,咱们要在 build 以前把它们全清空,这真是 clean-webpack-plugin 发挥的做用。npm
首先来安装。bash
$ npm i clean-webpack-plugin --save-dev
复制代码
webpack.config.js
const path = require('path')
...
const CleanWebpackPlugin = require('clean-webpack-plugin');
let pathsToClean = [
'dist',
]
module.exports = {
entry: {
"app.bundle": './src/app.js'
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].[chunkhash].js'
},
...
plugins: [
new CleanWebpackPlugin(pathsToClean),
...
new ExtractTextPlugin('style.css')
],
...
};
复制代码
如今运行 npm run prod
试试,只有下面的文件:
dist
├── app.bundle.0e380cea371d050137cd.js
├── index.html
└── style.css
复制代码
先到这里。