是否可以配置仅进行清理的webpack.config.js
(使用“ webpack-cleanup-plugin”),而不必配置entry
或output
参数?
答案 0 :(得分:0)
如果您想运行清理插件但不希望webpack捆绑文件,那么这是不可能的,因为webpack的主要目标是捆绑您的依赖项,并且像cleanup这样的任务是附加组件
除了回答您的问题之外,也许还有更好的方法
无需配置输入或输出参数?
是的,如果您不指定输入或输出参数,则Webpack 4可以实现,它将使用默认值src/index.js
输入,dist
输入output.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
更多信息here
因为使用此配置运行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