如何防止CleanWebpackPlugin删除静态文件
我正在使用CopyWebpackPlugin将静态文件复制到分布式文件夹,但是CleanWebpackPlugin在使用--watch模式时会将其删除。因此,第一次复制文件时,第二次删除文件而不是重新复制如何防止CleanWebpackPlugin删除静态文件,webpack,Webpack,我正在使用CopyWebpackPlugin将静态文件复制到分布式文件夹,但是CleanWebpackPlugin在使用--watch模式时会将其删除。因此,第一次复制文件时,第二次删除文件而不是重新复制 // webpack config plugins: [ new CopyWebpackPlugin([ { from: resolvePath('static'), to: resolvePath(isCordova ? 'cordova/www/stat
// webpack config
plugins: [
new CopyWebpackPlugin([
{
from: resolvePath('static'),
to: resolvePath(isCordova ? 'cordova/www/static' : 'www/static'),
},
]),
new CleanWebpackPlugin()
]
这两个模块一起工作,有没有修复方法?我终于创建了自己的网页插件
const shell = require('shelljs')
const path = require('path');
function resolvePath(dir) {
return path.join(__dirname, '../../../', dir);
}
module.exports = class CleanPlugin {
// Define `apply` as its prototype method which is supplied with compiler as its argument
apply(compiler) {
// Specify the event hook to attach to
compiler.hooks.emit.tapAsync(
'CleanPlugin',
(compilation, callback) => {
let command = `rm -rf ${resolvePath("cordova/www")}/*.json`
shell.exec(command)
callback()
}
)
}
}
并按如下方式使用:
// require the module
const CleanPlugin = require('./webpack-plugins/clean-plugin/clean-plugin-class')
// inject in plugins array in webpack config file
new CleanPlugin()
正如您所见,它只是在每次重建时运行一个shell命令(即使在监视模式下)。这个shell命令非常具体,我可以根据需要管理它
如果您有多个或多个shell命令,您可以使用外部文件并将所有逻辑放在那里。显然,
CopyWebpackPlugin
复制的文件会被视为过时文件并被删除。这使我能够跳过清理由CopyWebpackPlugin
复制的文件:
新的CleanWebpackPlugin({
CleanStaleWebPackageAssets:false,
}),
我尝试了新的CleanWebpackPlugin({exclude:['static*',}),
和其他一些东西,但它似乎不起作用。静态目录保留,但其内容已删除