美文网首页
vue-cli3分环境本地运行和打包

vue-cli3分环境本地运行和打包

作者: suesoft | 来源:发表于2020-03-18 16:54 被阅读0次

cli3相比cli2简洁了许多,配置相关信息需要自己手动创建文件。

最终实现的配置命令:
npm run build 线上环境打包
npm run test 测试环境打包
npm run serve 测试环境本地运行
npm run online 线上环境本地运行


(一)、分环境打包

npm run test
npm run build

1、项目根目录创建文件 .env.buid 和 .env.test

.env.buid 文件

/* 注意:
* 除了特殊变量NODE_ENV 和 BASE_URL外,
* 只有VUE_APP_ 开头的变量才会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中。
*/
NODE_ENV='production'
VUE_APP_TITLE = 'production'
// 正式环境请求地址
// VUE_APP_shareUrl = '"https://on.xxxa.com"'
// VUE_APP_baseUrl = '"https://on.xxxb.com"'
// VUE_APP_javaUrl = '"https://on.xxxb.com"'

.env.test 文件

NODE_ENV='production'
VUE_APP_TITLE = 'test'

特别注意:如果误把此处的NODE_ENV='production'写成了NODE_ENV='test',会出现一个特别坑的问题。在ios系统11和vivo x9手机上会出现页面白屏的问题,且无报错。
这个问题我找了好久,各种检查代码,各种es6转es5尝试都不行。坑死我了!!!

2、修改package.json
"scripts": {
    "build": "vue-cli-service build --mode build", // 当前模式build
    "test": "vue-cli-service build --mode test", // 当前模式test
    ...
  },

(二)、分环境运行

npm run serve
npm run online

1、项目根目录创建文件 .env.dev 和 .env.online

.env.dev 文件

NODE_ENV='development'
VUE_APP_TITLE = 'dev'

.env.online 文件

NODE_ENV='development'
VUE_APP_TITLE = 'online'
2、修改package.json
"scripts": {
    "serve": "vue-cli-service serve --mode dev",
    "online": "vue-cli-service serve --mode online",
    ...
  },

请求地址可以直接定义在.env.xxx文件里,然后调用。
但要注意除了特殊变量NODE_ENV 和 BASE_URL外,只有VUE_APP_ 开头的变量会被webpack.DefinePlugin 静态嵌入到客户端侧的包中。

// 调用方式
const shareUrl = process.env.VUE_APP_shareUrl
const baseUrl = process.env.VUE_APP_baseUrl
const javaUrl = process.env.VUE_APP_javaUrl

也可以通过判断process.env.VUE_APP_TITLE来定义不同的请求地址:

switch(process.env.VUE_APP_TITLE) {
  // 线上环境
  case 'production':
  case 'online':
    shareUrl = 'https://on.xxxa.com'
    baseUrl = 'https://on.xxxb.com' 
    javaUrl = 'https://on.xxxc.com'
    break
  // 测试环境
  default:
    shareUrl = 'https://cs.xxxa.com'
    baseUrl= 'https://cs.xxxb.com' 
    javaUrl = 'https://cs.xxxc.com' 
    break
}

相关文章

网友评论

      本文标题:vue-cli3分环境本地运行和打包

      本文链接:https://www.haomeiwen.com/subject/crwqyhtx.html