| 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))        ])      }    }  })}
 |