webpack - Webpack/webpack-cleanup-plugin: webpack.config.js 只做清理
问题描述
是否可以配置webpack.config.js
只进行清理(使用“webpack-cleanup-plugin”),而无需配置entry
oroutput
参数?
解决方案
如果你想运行 cleanup 插件但不想让 webpack 捆绑你的文件,那么这是不可能的,因为 webpack 的主要目标是捆绑你的依赖项,而像 cleanup 这样的任务是附加组件
可能有更好的方法来做这件事,但要回答你的问题
无需配置输入或输出参数?
是的,如果你没有指定 entry 或 output 参数,这在 Webpack 4 中是可能的,它将使用默认值,即src/index.js
entry 和dist
foroutput.folder
如果找不到入口文件,Webpack 将抛出错误,
因此如果您不指定入口,则src/index.js
必须存在于您的项目中
所以可以说你的文件夹结构如下
| src
|index.js
| libs
| build
现在如果你想清理build
目录然后你创建一个这样的配置
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const path = require('path');
module.exports = {
plugins: [
new CleanWebpackPlugin({
// takes an array so you can specify multiple patterns
// build/**/* will clean everything inside build but not build directory itself
cleanOnceBeforeBuildPatterns: [path.resolve(process.cwd(), 'build/**/*')]
}),
]
};
请注意,现在您需要指定cleanOnceBeforeBuildPatterns
因为默认情况下clean-webpack-plugin
将删除 webpack 的 output.path 目录中的所有文件
我们没有指定 output.path 所以它的默认值dist
更准确path.resolve(process.cwd(), 'dist')
但是我们想清理里面的所有东西build
您可以指定其他选项,例如
cleanOnceBeforeBuildPatterns
,cleanAfterEveryBuildPatterns
或事件,如果您想在项目之外进行清理,那么您无法dangerouslyAllowCleanPatternsOutsideProject
在此处true
设置
更多信息
因为使用这个配置运行 webpack 也会创建dist/main.js
包,所以我们也需要删除它,所以你的脚本可能看起来像这样
"scripts": {
"clean": "webpack --config webpack.config.js && rm -rf ./dist"
}
一种更简单的方法是在package.json
文件中指定一个简单的 bash 命令,例如
"scripts": {
"clean": "rm -rf ./build/**"
}
你可以像这样运行它yarn clean
或npm run clean
推荐阅读
- python-3.x - csvwriter 循环写入问题
- c# - 使用 Process 类的 CancelOutputRead 方法,正确的方法?
- tfs - 分离/重新附加-TFS 2015 后无法访问集合管理页面
- python - 用 nltk 训练我自己的分类器后,如何将它加载到 textblob 中?
- r - 如何整合两个功能的乘积
- javascript - 未捕获的 ReferenceErrors Ytplayer 和 gtag
- javascript - 将数组值与字符串进行比较
- javascript - Cycle.js - 如何在集合项中获取集合长度
- excel - 从行尾开始的excel文本到列分隔符
- typescript - 多种类型的打字稿联合