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