53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 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)
 | |
| }
 |