眾所周知,一個項目在開發、測試與生產環境的各種配置變量是不一樣的,但在vue cli 3中通過指令vue create xxx創建的項目取消了默認的 config 和 build 文件夾,這導致剛入手的小伙伴不知道在哪兒配置環境變量,不過官方也提供了相應的配置方法。
可以在項目根目錄中放置下列文件來指定環境變量:
# 在所有的環境中被載入
.env
# 只在指定的模式中被載入 如:development、production
.env.[mode]
# 在文件名末尾添加 .local 時,載入情況同上,但在git中會被忽略
.env[.[mode]].local
不過請注意,只有 NODE_ENV,BASE_URL 和以 VUE_APP_ 開頭的變量將會被vue載入到項目編譯后的靜態代碼中,這是為了避免意外公開機器上可能具有相同名稱的私鑰。
| 命令 | 默認環境 | 配置 |
|---|---|---|
| vue-cli-service serve | development | .env.development |
| vue-cli-service test:unit | test | .env.test |
| vue-cli-service test:e2e | production | .env.production |
| vue-cli-service build | production | .env.production |
| vue-cli-service xxx --mode [mode] | [mode] | .env.[mode] |
測試:
配置文件
# /.env.production
NODE_ENV=production
WELCOME=我是來自$NODE_ENV的WELCOME
VUE_APP_WELCOME=歡迎光臨,我是來自$NODE_ENV的VUE_APP_WELCOME
# /.env.development
NODE_ENV=development
WELCOME=我是來自$NODE_ENV的WELCOME
VUE_APP_WELCOME=謝謝惠顧,我是來自$NODE_ENV的VUE_APP_WELCOME
頁面調用:
console.log('')
console.log(`NODE_ENV`)
console.log(process.env.NODE_ENV)
console.log('')
console.log(`WELCOME`)
console.log(process.env.WELCOME)
console.log('')
console.log(`VUE_APP_WELCOME`)
console.log(process.env.VUE_APP_WELCOME)
console.log('')
當配置mode為development時,頁面調用結果如下:

當配置mode為production時,頁面調用結果如下:

總結
該配置方法簡單快速,不像之前的版本需要在js中配置對象;同時變量名必須符合NODE_ENV,BASE_URL 或以 VUE_APP_ 開頭的規范
如有錯誤,歡迎指出,謝謝
