12345678910111213141516171819202122232425262728293031323334353637 |
- module.exports = (api, options) => {
- api.chainWebpack(webpackConfig => {
- if (process.env.NODE_ENV === 'production') {
- const isLegacyBundle = process.env.VUE_CLI_MODERN_MODE && !process.env.VUE_CLI_MODERN_BUILD
- const getAssetPath = require('../util/getAssetPath')
- const filename = getAssetPath(
- options,
- `js/[name]${isLegacyBundle ? `-legacy` : ``}${options.filenameHashing ? '.[contenthash:8]' : ''}.js`
- )
- webpackConfig
- .mode('production')
- .devtool(options.productionSourceMap ? 'source-map' : false)
- .output
- .filename(filename)
- .chunkFilename(filename)
- // keep module.id stable when vendor modules does not change
- webpackConfig
- .plugin('hash-module-ids')
- .use(require('webpack/lib/HashedModuleIdsPlugin'), [{
- hashDigest: 'hex'
- }])
- // disable optimization during tests to speed things up
- if (process.env.VUE_CLI_TEST) {
- webpackConfig.optimization.minimize(false)
- } else {
- const TerserPlugin = require('terser-webpack-plugin')
- const terserOptions = require('./terserOptions')
- webpackConfig.optimization.minimizer([
- new TerserPlugin(terserOptions(options))
- ])
- }
- }
- })
- }
|