125 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const HtmlWebpackPlugin = require('html-webpack-plugin')
 | ||
| const AWSDevParams = require('./AWSDevParams');
 | ||
| const AWSReleasePath = AWSDevParams.AWSReleasePath;
 | ||
| const AWSPortalUrl = AWSDevParams.AWSPortalUrl;
 | ||
| //开发时通过用户名及密码获取sessionId
 | ||
| const devUserInfo =AWSDevParams.devUserInfo;
 | ||
| const AWSproxyPath = "/AWSDEVURL/r/"; //防止跨域的地址
 | ||
| 
 | ||
| const moduleTemplateInAWS = AWSDevParams.moduleTemplateInAWS;//平台的模板路径
 | ||
| const outputDir = AWSDevParams.outputDir;
 | ||
| const publicPath = AWSDevParams.publicPath;//决定生成在平台的js或css的相对路径,与build配置的路径要对应
 | ||
| 
 | ||
| //判断是否开发
 | ||
| const isproduction = process.env.NODE_ENV === 'production';
 | ||
| //开发时路径和build到平台路径
 | ||
| let AWSJSAndCSSPath = isproduction ? "../" : AWSproxyPath.replace("r/","");
 | ||
| let AWSJSAndCSSImport = AWSDevParams.AWSJSAndCSSImport == null ? [] : AWSDevParams.AWSJSAndCSSImport;
 | ||
| let AWSJSAndCSSImportArray = [];
 | ||
| for(let k of AWSJSAndCSSImport){
 | ||
|   if(k.type == "css"){
 | ||
|     AWSJSAndCSSImportArray.push("<link type='text/css' rel='stylesheet' href='"+AWSJSAndCSSPath + k.path +"'/>");
 | ||
|   }else if(k.type == "js"){
 | ||
|     AWSJSAndCSSImportArray.push("<script type='text/javascript' src='"+AWSJSAndCSSPath + k.path + "'></script>");
 | ||
|   }
 | ||
| }
 | ||
| 
 | ||
| const getAWSFileRelativePath = ()=>{
 | ||
|   let index = "./";
 | ||
|   if(isproduction){
 | ||
|     index = publicPath;
 | ||
|   }
 | ||
|   return index;
 | ||
| }
 | ||
| const getIndexPath = ()=>{
 | ||
|   let index = "index.html";
 | ||
|   if(isproduction){
 | ||
|     index = AWSReleasePath+moduleTemplateInAWS;
 | ||
|   }
 | ||
|   return index;
 | ||
| }
 | ||
| module.exports = {
 | ||
|   // 基本路径 build后文件路径../apps/_bpm.platform/test2 ,开发运行时文件路径./
 | ||
|   publicPath: getAWSFileRelativePath(),
 | ||
| 
 | ||
|   //生成入口的html文件位置
 | ||
|   indexPath: getIndexPath(),
 | ||
| 
 | ||
|   outputDir : AWSReleasePath+outputDir,
 | ||
| 
 | ||
|   // eslint-loader 是否在保存的时候检查
 | ||
|   lintOnSave: true,
 | ||
| 
 | ||
|   productionSourceMap: false, //打包不使用源码(false后在平台无法调试)
 | ||
|   // use the full build with in-browser compiler?
 | ||
|   // https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
 | ||
|   // compiler: false,
 | ||
|   // webpack配置
 | ||
|   // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
 | ||
|   chainWebpack: (config) => {
 | ||
|     config.plugin('html')
 | ||
|         .tap(args => {
 | ||
|           let buildVar = args[0];
 | ||
|           buildVar.AWSJSAndCSSImport = AWSJSAndCSSImportArray.join("\n");
 | ||
|           buildVar.AWSJSAndCSSPath = AWSJSAndCSSPath;
 | ||
|           buildVar.devUserInfo = devUserInfo;
 | ||
|           buildVar.isproduction = isproduction;
 | ||
|           buildVar.axiosBaseUrl = isproduction ? "./" : AWSproxyPath;
 | ||
|           buildVar.settingParam = isproduction ? "<#settingParam>" : "{}";
 | ||
|           return args;
 | ||
|         });
 | ||
|   },
 | ||
| 
 | ||
|   configureWebpack: config => {
 | ||
|     config.entry.app=["babel-polyfill","./src/main.js"];
 | ||
|     if (isproduction) {
 | ||
|       // 为生产环境修改配置...
 | ||
|       config.mode = 'production'
 | ||
|     } else {
 | ||
|       // 为开发环境修改配置...
 | ||
|       config.mode = 'development'
 | ||
|     }
 | ||
|   },
 | ||
| 
 | ||
|   devServer: {
 | ||
|     proxy: {
 | ||
|       //配置跨域
 | ||
|       "/AWSDEVURL": {
 | ||
|         target: AWSPortalUrl,
 | ||
|         ws: true,
 | ||
|         changOrigin: true, //允许跨域
 | ||
|         pathRewrite: {
 | ||
|           "^/AWSDEVURL": "" //请求的时候使用这个URL就可以
 | ||
|         }
 | ||
|       }
 | ||
|     }
 | ||
|   },
 | ||
|   // css相关配置
 | ||
|   css: {
 | ||
|     loaderOptions: {}
 | ||
|   },
 | ||
| 
 | ||
|   // 是否启用dll
 | ||
|   // See https://github.com/vuejs/vue-cli/blob/dev/docs/cli-service.md#dll-mode
 | ||
|   // dll: false,
 | ||
|   // PWA 插件相关配置
 | ||
|   // see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
 | ||
|   pwa: {},
 | ||
| 
 | ||
|   // webpack-dev-server 相关配置
 | ||
|   //  devServer: {
 | ||
|   //    open: process.platform === 'darwin',
 | ||
|   //    disableHostCheck: true,
 | ||
|   //    host: 'www.test.com',//如果是真机测试,就使用这个IP
 | ||
|   //    port: 1234,
 | ||
|   //    https: false,
 | ||
|   //    hotOnly: false,
 | ||
|   //   before: app => {}
 | ||
|   //  },
 | ||
|   
 | ||
|   // 第三方插件配置
 | ||
|   pluginOptions: {
 | ||
|   },
 | ||
|   transpileDependencies:  ["*"]
 | ||
| }
 | 
