Hash web包中的散列可以工作,但旧文件在每个构建中都会保留
我希望能够删除旧文件(特别是那些在最新的webpack assets.json中找不到的文件)。由于创建了带有散列的新文件,它们不会替换旧文件,但同时我不能清除整个目录,因为不是所有文件都会被替换 我想知道,是否有一种方法可以在更新Hash web包中的散列可以工作,但旧文件在每个构建中都会保留,hash,webpack,delete-file,cache-control,Hash,Webpack,Delete File,Cache Control,我希望能够删除旧文件(特别是那些在最新的webpack assets.json中找不到的文件)。由于创建了带有散列的新文件,它们不会替换旧文件,但同时我不能清除整个目录,因为不是所有文件都会被替换 我想知道,是否有一种方法可以在更新webpack assets.json后除去不在其中的文件。这是我的配置: var path = require('path'); var webpack = require('webpack'); var ChunksPlugin = require('webpac
webpack assets.json
后除去不在其中的文件。这是我的配置:
var path = require('path');
var webpack = require('webpack');
var ChunksPlugin = require('webpack-split-chunks');
var AssetsPlugin = require('assets-webpack-plugin');
var glob = require('glob');
var assetsPluginInstance = new AssetsPlugin();
// TODO add prefixer for >= IE9
var input_path = __dirname + "/apps/*/index.js";
var output_path = __dirname +'/dist';
// Prepare project paths for multiple projects into entry_files
var projects = glob.sync(input_path);
var entry_files = {};
projects.map(function(project_dir, k){
var split_name = project_dir.split("/");
entry_files[split_name[split_name.length - 2]] = project_dir;
});
module.exports = {
devtool: 'cheap-module-eval-source-map',
entry: entry_files,
module: {
loaders: [
{
test: /\.js$/,
loaders: ['babel'],
exclude: /node_modules/
},
{
test: /\.scss/,
loader: 'style-loader!css-loader?sourceMap!sass-loader?sourceMap'
}
]
},
output: {
path: output_path,
filename: '[name].min.[hash].js'
// filename: '[name].min.js'
},
watch: true,
plugins: [
assetsPluginInstance,
new webpack.optimize.OccurrenceOrderPlugin(),
new ChunksPlugin({
to: 'common.[hash]',
// to: 'common',
test: [/node_modules/, /shared/] // or an array of regex
})
]
};
您可以使用CleanWebPackagePlugin:
npm install clean-webpack-plugin --save-dev
然后将其添加到插件设置中:
var CleanWebpackPlugin = require('clean-webpack-plugin');
module.exports = {
plugins: [
new CleanWebpackPlugin(['dist', 'build'], {
root: '/full/project/path',
verbose: true,
dry: false,
exclude: ['shared.js']
})
]
}
通常path与dirname一起使用,即
输出:{path:path.resolve(uu dirname,'dist'),…
在这种情况下,shared将被排除在外。但是如果它发生了变化怎么办?完整的项目路径是否与项目web包配置的位置相关?您的web包配置通常位于根级别(我的意思是不是文件夹深度)如果shared
因为被排除在外而发生变化,我不相信它会得到考虑