Ann*_*nie 4 webpack webpack-plugin
背景:一个简单的单页React应用程序+ Redux + Express(以便上传到Heroku)。
我的公共文件夹中已经有index.html 和images 文件夹。我想运行 webpack 来生成我在 index.html 中使用的 styles.css 和 bundle.js。我想使用 webpack-clean-up-plugin 在每次运行构建时删除额外的先前文件,但我不希望这影响像 index.html 和 images 文件夹这样的东西。
根据文档: *选项 如果您想在输出路径中保留某些文件,例如从其他插件生成的 stats.json 文件,请使用排除数组选项。它接受小型匹配中的通配符。
// 不要删除stats.json, important.json, 以及其中的所有内容folder
new WebpackCleanupPlugin({
exclude: ["stats.json", "important.js", "folder/**/*"],
})
Run Code Online (Sandbox Code Playgroud)
目标:运行 webpack.prod.js 所以最后 public 文件夹有
Webpack.config.prod.js:
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
output: {
path: path.join(__dirname, 'public'),
filename: 'bundle.js'
},
plugins: [
new MiniCssExtractPlugin({
filename: "styles.css",
chunkFilename: "[id].css"}),
new CleanWebpackPlugin({
exclude: ["index.html", "images/*"],
})
],
Run Code Online (Sandbox Code Playgroud)
当前结果:
每次我 npm run
"build:prod": "webpack --config webpack.config.prod.js --mode production",
Run Code Online (Sandbox Code Playgroud)
我会删除我的index.html 和images 文件夹。那我哪里写错了?
使用此选项代替排除
cleanOnceBeforeBuildPatterns: ["**/*", "!stats.json","!important.js", "!folder/**/*"]
Run Code Online (Sandbox Code Playgroud)
这对我有用:)。例子:
new CleanWebpackPlugin({
root: process.cwd(),
verbose: true,
dry: false,
cleanOnceBeforeBuildPatterns: ["**/*", "!stats.json","!important.js", "!folder/**/*"],
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10071 次 |
| 最近记录: |