關(guān)于vue設(shè)置環(huán)境變量全流程
vue設(shè)置環(huán)境變量
在開發(fā)的時(shí)候一般會有是三個(gè)環(huán)境:開發(fā)環(huán)境 測試環(huán)境 線上環(huán)境
vue 中有個(gè)概念就是模式,默認(rèn)先vue cli 有三個(gè)模式
development模式用于 vue-cli-service serveproduction模式用于 vue-cli-service build 和 vue-cli-service test:e2etest模式用于 vue-cli-service test:unit
但是往往開發(fā)的時(shí)候可能不止有三種:
- 本地環(huán)境(local)
- 開發(fā)環(huán)境(development)
- 測試環(huán)境(devtest)
- 預(yù)發(fā)布環(huán)境(beta)
- 生產(chǎn)環(huán)境(production)
參考鏈接:配置環(huán)境變量
創(chuàng)建不同環(huán)境變量文件

如官方文檔所說,通過為.env文件增加后綴來設(shè)置某個(gè)模式下特有的環(huán)境變量。我這里有5個(gè)環(huán)境,所以配置了5個(gè).env文件。如下圖:

給.env文件添加內(nèi)容
基本格式如下:
NODE_ENV=環(huán)境名稱VUE_APP_URL=對應(yīng)的環(huán)境地址
如我本地環(huán)境的配置就如下圖所示:

我本地是用的easy-mock模擬的數(shù)據(jù),所以配置的地址是mock接口地址。
在package.json中添加不同環(huán)境對應(yīng)的執(zhí)行語句
如官方文檔所說,可以通過傳遞 --mode 來配置不同的模式。我自己的項(xiàng)目配置如下圖:

使用
文件已創(chuàng)建好,配置語句也已寫好。怎么用它呢?
首頁你需要哪個(gè)環(huán)境,就執(zhí)行哪個(gè)環(huán)境的命令語句。
比如我現(xiàn)在需要local環(huán)境,就執(zhí)行 npm run local-serve 。
如下圖所示:

然后通過 process.env.NODE_ENV 獲取環(huán)境名;通過 process.env.VUE_APP_URL 獲取環(huán)境對應(yīng)的url。
比如我們在axios請求中,就可以把它的baseURL設(shè)置為 process.env.VUE_APP_URL
如下圖所示:

如果你不確定你自己現(xiàn)在是在哪個(gè)環(huán)境變量下,可以 console.log(“當(dāng)前環(huán)境變量:”+process.env.NODE_ENV) 和 console.log(“當(dāng)前環(huán)境路徑:”+process.env.VUE_APP_URL) 看下。
總而言之就是,你需要哪個(gè)環(huán)境變量,就 【npm run 對應(yīng)的環(huán)境變量】 就完事了!
多環(huán)境變量
什么是多環(huán)境變量?
項(xiàng)目在運(yùn)行時(shí)會根據(jù)啟動的指令來運(yùn)行不同的環(huán)境,在不同的環(huán)境中,我們配置對應(yīng)所需的變量來滿足我們的開發(fā)需求,稱為多環(huán)境變量。
環(huán)境一般分為開發(fā)環(huán)境,測試環(huán)境,生產(chǎn)環(huán)境
配置流程
1、在項(xiàng)目根目錄下的package.json中配置serve test build
通過 --mode xxx 來執(zhí)行不同環(huán)境
"scripts": {
? "serve": "vue-cli-service serve --open",
? "test": "vue-cli-service build --mode testing",
? "build": "vue-cli-service build",
}–open 是運(yùn)行的時(shí)候自動開出頁面
- 通過 npm run serve 啟動本地 , 執(zhí)行 development
- 通過 npm run test 打包測試 , 執(zhí)行 testing
- 通過 npm run build 打包正式 , 執(zhí)行 production
2、在項(xiàng)目根目錄下創(chuàng)建.env.*文件
.env.development 本地開發(fā)環(huán)境配置
NODE_ENV='development'
.env.production 正式環(huán)境配置
?NODE_ENV='production'
.env.staging 測試環(huán)境配置
NODE_ENV='production'
3.在src下面創(chuàng)建一個(gè)config文件夾下面配置三個(gè)相對應(yīng)的的js
重新配置三個(gè)是因?yàn)樾薷钠饋矸奖?,不需要重啟?xiàng)目,符合開發(fā)習(xí)慣。
// 根據(jù)環(huán)境引入不同配置 process.env.NODE_ENV
const config = require('./env.' + process.env.NODE_ENV)
module.exports = config配置對應(yīng)環(huán)境的變量,拿本地環(huán)境文件 env.development.js 舉例,用戶可以根據(jù)需求修改
// 本地環(huán)境配置
module.exports = {
? title: 'vue-h5-template',
? baseUrl: 'http://localhost:9018', // 項(xiàng)目地址
? baseApi: 'https://test.xxx.com/api', // 本地api請求地址
? APPID: 'xxx',
? APPSECRET: 'xxx'
}4.在我們根目錄下的src文件內(nèi)main.js文件中引入
import {baseUrl} from "./config/index";
// 因?yàn)閷?dǎo)出的是一個(gè)對象,結(jié)構(gòu)賦值
console.log(baseUrl);以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue-cli2.x舊版本卸載不掉的問題踩坑指南(附Vue腳手架安裝教程)
遇到一個(gè)Vuecli2腳手架卸載不了的問題,查了許多資料說的都比較復(fù)雜,所以下面這篇文章主要給大家介紹了關(guān)于vue-cli2.x舊版本卸載不掉的問題踩坑的相關(guān)資料,文中還附了Vue腳手架安裝教程,需要的朋友可以參考下2022-07-07
vue如何實(shí)現(xiàn)本項(xiàng)目頁面之間跳轉(zhuǎn)
這篇文章主要介紹了vue如何實(shí)現(xiàn)本項(xiàng)目頁面之間跳轉(zhuǎn),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
vue3.0 vue.config.js 配置基礎(chǔ)的路徑問題
這篇文章主要介紹了vue3.0 vue.config.js 配置基礎(chǔ)的路徑問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
vue組件中傳值EventBus的使用及注意事項(xiàng)說明
這篇文章主要介紹了vue組件中傳值EventBus的使用及注意事項(xiàng)說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
vue.js iview打包上線后字體圖標(biāo)不顯示解決辦法
這篇文章主要介紹了vue.js iview打包上線后字體圖標(biāo)不顯示解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
vue 數(shù)據(jù)(data)賦值問題的解決方案
這篇文章主要介紹了vue 數(shù)據(jù)(data)賦值問題的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03

