You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.6 KiB
52 lines
1.6 KiB
module.exports = (api, args, options) => { |
|
// respect inline entry |
|
if (args.entry && !options.pages) { |
|
api.configureWebpack(config => { |
|
config.entry = { app: api.resolve(args.entry) } |
|
}) |
|
} |
|
|
|
const config = api.resolveChainableWebpackConfig() |
|
const targetDir = api.resolve(args.dest || options.outputDir) |
|
|
|
// respect inline build destination in copy plugin |
|
if (args.dest && config.plugins.has('copy')) { |
|
config.plugin('copy').tap(pluginArgs => { |
|
pluginArgs[0].patterns.to = targetDir |
|
return pluginArgs |
|
}) |
|
} |
|
|
|
if (process.env.VUE_CLI_MODERN_MODE) { |
|
const ModernModePlugin = require('../../webpack/ModernModePlugin') |
|
const SafariNomoduleFixPlugin = require('../../webpack/SafariNomoduleFixPlugin') |
|
|
|
if (!args.moduleBuild) { |
|
// Inject plugin to extract build stats and write to disk |
|
config |
|
.plugin('modern-mode-legacy') |
|
.use(ModernModePlugin, [{ |
|
targetDir, |
|
isModuleBuild: false |
|
}]) |
|
} else { |
|
config |
|
.plugin('safari-nomodule-fix') |
|
.use(SafariNomoduleFixPlugin, [{ |
|
// as we may generate an addition file asset (if Safari 10 fix is needed) |
|
// we need to provide the correct directory for that file to place in |
|
jsDirectory: require('../../util/getAssetPath')(options, 'js') |
|
}]) |
|
|
|
// Inject plugin to read non-modern build stats and inject HTML |
|
config |
|
.plugin('modern-mode-modern') |
|
.use(ModernModePlugin, [{ |
|
targetDir, |
|
isModuleBuild: true |
|
}]) |
|
} |
|
} |
|
|
|
return api.resolveWebpackConfig(config) |
|
}
|
|
|