在項目開發中,我們的項目一般分爲開發版、測試版、Pre版、Prod版。Vue-cli的默認環境一隻有dev和prod兩個,之前每次要發佈測試版或Pre版都是修改了源碼中API地址後打包,這樣很麻煩。如果能根據不同環境打包就完美了。
代碼如下:
1.config/prod.env.js
文件修改如下:
'use strict'
//npm 提供一個npm_lifecycle_event變量,返回當前正在運行的腳本名稱,比如pretest、test、posttest等等。所以,可以利用這個變量,在同一個腳本文件裏面,爲不同的npm scripts命令編寫代碼。
const target = process.env.npm_lifecycle_event;
let obj;
if (target == 'test') {
//測試服
obj = {
NODE_ENV: '"production"',
BASE_URL: '"https://xxxxx"'
}
} else {
//正式服
obj = {
NODE_ENV: '"production"',
BASE_URL: '"https://xxxxx"'
}
}
module.exports = obj;
2.package.json
中修改如下:
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"build": "node build/build.js",
"test": "node build/build.js"
},
3.打包上線
//打包測試服文件
npm run test
//打包正式服文件
npm run build