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.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							1.5 KiB
						
					
					
				module.exports = (api, args, options) => { | 
						|
  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][0].to = targetDir | 
						|
      return pluginArgs | 
						|
    }) | 
						|
  } | 
						|
 | 
						|
  if (args.modern) { | 
						|
    const ModernModePlugin = require('../../webpack/ModernModePlugin') | 
						|
    if (!args.modernBuild) { | 
						|
      // Inject plugin to extract build stats and write to disk | 
						|
      config | 
						|
        .plugin('modern-mode-legacy') | 
						|
        .use(ModernModePlugin, [{ | 
						|
          targetDir, | 
						|
          isModernBuild: false, | 
						|
          unsafeInline: args['unsafe-inline'] | 
						|
        }]) | 
						|
    } else { | 
						|
      // Inject plugin to read non-modern build stats and inject HTML | 
						|
      config | 
						|
        .plugin('modern-mode-modern') | 
						|
        .use(ModernModePlugin, [{ | 
						|
          targetDir, | 
						|
          isModernBuild: true, | 
						|
          unsafeInline: args['unsafe-inline'], | 
						|
          // as we may generate an addition file asset (if `no-unsafe-inline` specified) | 
						|
          // we need to provide the correct directory for that file to place in | 
						|
          jsDirectory: require('../../util/getAssetPath')(options, 'js') | 
						|
        }]) | 
						|
    } | 
						|
  } | 
						|
 | 
						|
  const rawConfig = api.resolveWebpackConfig(config) | 
						|
 | 
						|
  // respect inline entry | 
						|
  if (args.entry && !options.pages) { | 
						|
    const entry = api.resolve(args.entry) | 
						|
    rawConfig.entry = { app: entry } | 
						|
    process.env.VUE_CLI_ENTRY_FILES = JSON.stringify([entry]) | 
						|
  } | 
						|
 | 
						|
  return rawConfig | 
						|
}
 | 
						|
 |