This commit is contained in:
Pan
2018-07-27 14:29:55 +08:00
parent f59a39390e
commit 758330dee6
2 changed files with 18 additions and 4 deletions

View File

@@ -11,11 +11,19 @@ const ScriptExtHtmlWebpackPlugin = require('script-ext-html-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
const crypto = require('crypto');
function resolve(dir) {
return path.join(__dirname, '..', dir)
}
function createHash(data) {
const length = 8
const hash = crypto.createHash('md5').update(data).digest("hex")
return hash.slice(0, length)
}
const env = require('../config/' + process.env.env_config + '.env')
const webpackConfig = merge(baseWebpackConfig, {
@@ -30,8 +38,8 @@ const webpackConfig = merge(baseWebpackConfig, {
devtool: config.build.productionSourceMap ? config.build.devtool : false,
output: {
path: config.build.assetsRoot,
filename: utils.assetsPath('js/[name].[chunkhash].js'),
chunkFilename: utils.assetsPath('js/[name].[chunkhash].js')
filename: utils.assetsPath('js/[name].[chunkhash:8].js'),
chunkFilename: utils.assetsPath('js/[name].[chunkhash:8].js')
},
plugins: [
// http://vuejs.github.io/vue-loader/en/workflow/production.html
@@ -69,6 +77,12 @@ const webpackConfig = merge(baseWebpackConfig, {
//`runtime` must same as runtimeChunk name. default is `runtime`
inline: /runtime\..*\.js$/
}),
new webpack.NamedChunksPlugin(chunk => {
if (chunk.name) {
return chunk.name
}
return createHash(Array.from(chunk.modulesIterable, m => m.id).join('_'))
}),
// keep module.id stable when vender modules does not change
new webpack.HashedModuleIdsPlugin(),
// copy custom static assets