網上找了很多 vue-cli 多環境配置的文章,發現跟自己項目里許多地方對不上,於是自己研究了下,至少能用
1. /src 目錄下新建 api 目錄,api 目錄下新建 index.js。
/src/api/index.js
1 const api = {} 2 3 switch (process.env.NODE_ENV) { 4 // 生產環境 5 case 'production': 6 api.base_url = 'http://www.test.test' 7 break 8 // 開發環境 9 case 'development': 10 api.base_url = 'http://www.api.test' 11 break 12 default: 13 } 14 15 export default api
2. 配置 /src/main.js,VUE 頁面是使用 this.$api.base_url 就可以使用當前環境配置的 api 地址了
1 // 引入 api 配置文件 2 import api from "./api/index.js"; 3 4 // 掛在 api 到 VUE 對象上,在 VUE 對象中使用 this.$api.base_url 5 Vue.prototype.$api = api;
3. 添加新環境
/config/dev.env.js 復制一份 /config/test1.env.js,內容不需要修改,文件名中 test1 可以自己想命名的環境名字
1 'use strict' 2 const merge = require('webpack-merge') 3 const prodEnv = require('./prod.env') 4 5 module.exports = merge(prodEnv, { 6 NODE_ENV: '"test1"' 7 })
/build/webpack.dev.conf.js 復制一份 /build/webpack.test1.conf.js,文件名中 test1 可以自己想命名的環境名字,需要修改文件 49行左右的環境名
1 'process.env': require('../config/test1.env')
/src/api/index.js 添加新 API 地址
1 // 測試環境1 2 case 'test1': 3 api.base_url = 'http://www.tes1.test' 4 break
/package.json 添加新指令,就可以在命令行里 使用 npm run test1 啟動項目了,要添加多個以此類推
1 "scripts": { 2 "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", 3 "test1": "webpack-dev-server --inline --progress --config build/webpack.test1.conf.js", 4 "start": "npm run dev", 5 "build": "node build/build.js" 6 }
完整代碼可以參考:https://git.lug.ustc.edu.cn/gechenpeng/axiostest.git