zoro-cli
Version:
https://github.com/vuejs/vue-cli
35 lines (28 loc) • 966 B
JavaScript
module.exports = ({ api, options, envUtil, args }) => {
api.chainWebpack(webpackConfig => {
const isProd = envUtil.isProduction()
if (isProd) {
webpackConfig.mode('production')
if (options.productionSourceMap) {
webpackConfig.devtool('source-map')
}
// FIXME:
// webpackConfig
// .output.filename('js/[name].[chunkhash:8].js')
// .chunkFilename('js/[name].[chunkhash:8].js');
// keep module.id stable when vendor modules does not change
webpackConfig
.plugin('hash-module-ids')
.use(require('webpack/lib/HashedModuleIdsPlugin'))
// minify JS
const TerserPlugin = require('terser-webpack-plugin')
const terserOptions = require('./terserOptions')
webpackConfig.optimization.minimizer([
new TerserPlugin(terserOptions(options)),
])
if (args.nominimize) {
webpackConfig.optimization.minimize(false)
}
}
})
}