Vue 多環境配置方法


開發應用時環境有開發環境、測試環境、生產環境等,此時我們需要配置不同的環境,獲取不同的apiUrl前綴,避免了頻繁手動更改api.

1.安裝cross-env插件

cross-env是跨平台設置和使用環境變量的腳本。
在大多數Windows命令行中在使用NODE_ENV = production設置環境變量時會報錯。同樣,Windows和Linux命令如何設置環境變量也有所不同。 使用cross-env可以設置在不同的平台上有相同的NODE_ENV參數。

npm install cross-env --save-dev

2.修改package.json的scripts

通過cross-env跨平台地設置環境變量(可以根據自己需求多定義幾個環境)

1   "scripts": {
2     "dev": "cross-env NODE_PACK=development webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
3     "start": "npm run dev",
4     "build": "cross-env NODE_PACK=production node build/build.js"
5   },

3.config文件下新建api.js文件

通過process.env.NODE_PACK獲取到自定義的環境變量,獲取對應環境的API

 1 // 根據環境設置 BASE_API
 2 let apiUrl = '';
 3 switch(process.env.NODE_PACK) {
 4   case 'production':
 5     apiUrl = '"https://it.bkjk.cn"';
 6     break;
 7   .......
 8   default:
 9     apiUrl = '"http://127.0.0.1:8000"';
10     break;
11 }
12 module.exports = apiUrl;

4.更改config下的dev.env.js和prod.env.js

dev.env.js

1 'use strict'
2 const merge = require('webpack-merge')
3 const prodEnv = require('./prod.env')
4 const apiUrl = require('./api')
5 
6 module.exports = merge(prodEnv, {
7   NODE_ENV: '"development"',
8   BASE_API : apiUrl
9 })

prod.env.js

1 'use strict'
2 const apiUrl = require('./api')
3 
4 module.exports = {
5   NODE_ENV: '"production"',
6   BASE_API : apiUrl
7 }

5.utils下的request.js

添加baseURL: process.env.BASE_API后src/api/api.js的接口只用后綴就行,會自動和baseURL拼接,/也可省略
1 // 創建axios實例
2 const service = axios.create({
3   baseURL: process.env.BASE_API, // api 的 base_url
4   timeout: 5000, // 請求超時時間
5 })

                                                             


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM