config 文件夹中的 index.js
1 //此文件是用来配置各个环境参数 2 3 'use strict' 4 // Template version: 1.3.1 5 // see http://vuejs-templates.github.io/webpack for documentation. 6 7 const path = require('path') //此文件是用来配置开发环境和生产环境的配置参数 8 const devEnv = require('./dev.env') 9 const prodEnv = require('./prod.env') 10 var version = '' 11 12 // 时间标识符(用于区分版本) 13 if (process.env.NODE_ENV === 'production' && prodEnv.VERSION_CONTROL) { 14 var d = new Date(); 15 var yy = d.getFullYear().toString().slice(2); 16 var MM = d.getMonth() + 1 >= 10 ? (d.getMonth() + 1) : '0' + (d.getMonth() + 1); 17 var DD = d.getDate() >= 10 ? d.getDate() : '0' + d.getDate(); 18 var h = d.getHours() >= 10 ? d.getHours() : '0' + d.getHours(); 19 var mm = d.getMinutes() >= 10 ? d.getMinutes() : '0' + d.getMinutes(); 20 version = yy + MM + DD + h + mm; 21 } 22 23 module.exports = { 24 //开发环境 25 dev: { 26 assetsSubDirectory: 'static', //定义静态资源根目录的子目录static 27 assetsPublicPath: '/', //静态资源的公开路径 28 //代理表,用来建一个虚拟api服务器来代理本机的请求,只用于开发模式 29 proxyTable: devEnv.PROXY_REQUEST === false ? {} : { 30 '/api': { 31 target: 'http://127.0.0.1:7001', //设置调用的接口域名和端口 32 changeOrigin: true, //是否允许跨域 33 pathRewrite: { 34 '^/api': '/' //这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可 35 } 36 } 37 }, 38 39 // Various Dev Server settings 40 host: 'localhost', // can be overwritten by process.env.HOST 41 port: 8081, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined 42 autoOpenBrowser: true, //是否在浏览器中自动打开 43 errorOverlay: true, //是否查询错误 44 notifyOnErrors: true, //是否通知错误 45 poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- 46 47 // 使用Eslint加载器? 48 // If true, your code will be linted during bundling and 49 // linting errors and warnings will be shown in the console. 50 useEslint: true, 51 52 //如果为真,eslint错误和警告也将显示在错误叠加 53 //在浏览器中。 54 showEslintErrorsInOverlay: false, 55 56 /** 57 * Source Maps 58 */ 59 60 // https://webpack.js.org/configuration/devtool/#development 61 devtool: 'cheap-module-eval-source-map', 62 63 // If you have problems debugging vue-files in devtools, 64 // set this to false - it *may* help 65 // https://vue-loader.vuejs.org/en/options.html#cachebusting 66 cacheBusting: true, 67 68 cssSourceMap: true 69 }, 70 71 build: { 72 // Template for index.html 73 index: path.resolve(__dirname, `../dist/${version}/index.html`), 74 75 // Paths 76 assetsRoot: path.resolve(__dirname, `../dist/${version}`), 77 assetsSubDirectory: 'static', 78 assetsPublicPath: './', 79 80 /** 81 * Source Maps 82 */ 83 84 productionSourceMap: true, 85 // https://webpack.js.org/configuration/devtool/#production 86 devtool: 'cheap-module-source-map', 87 88 // Gzip off by default as many popular static hosts such as 89 // Surge or Netlify already gzip all static assets for you. 90 // Before setting to `true`, make sure to: 91 // npm install --save-dev compression-webpack-plugin 92 productionGzip: false, 93 productionGzipExtensions: ['js', 'css'], 94 95 // Run the build command with an extra argument to 96 // View the bundle analyzer report after build finishes: 97 // `npm run build --report` 98 // Set to `true` or `false` to always turn it on or off 99 bundleAnalyzerReport: process.env.npm_config_report 100 } 101 }