vue項目使用.env文件配置全局環境變量


.env文件是node運行時讀取的配置文件

首先時NODE_ENV,源自nodeis, NODE_ENV屬性一般可以省略不寫會有默認值,例如常用的 .env, .env.production.env.development
這三個文件,如果沒有在文件里注明NODE_ENV屬性,那就默認就是分別對應:

  1. NODE_ENV=production 對應 vue-cli-service buid 命令
  2. NODE ENV=development 對應vue-cli-service serve 命令
    以上三個命名不能變動,除此之外,可以另外自定義加上.env.test文件,也就是測試環境,或者.env.beta,也就是內部測試版,等等…

關於文件名:必須以如下方式命名,不要亂起名,也無需專門手動控制加載哪個文件

  • .env 全局默認配置文件,不論什么環境都會加載合並(優先加載此文件,再加載下面兩個文件,同名變量會覆蓋此文件變量)
  • .env.development 開發環境下的配置文件, 僅在開發環境加載。
  • .env.production 生產環境下的配置文件(也就是正式環境),僅在生產環境加載。
  • 以上三個文件命名不能改變,除此之外,可以另外自定義文件,如 .env.idc.env.name
  • vue項目中配置.env文件, 變量命名必須以VUE_APP_開頭,比如VUE_APP_URLVUE_APP_PWD
  • 獲取.env中的全局變量, 比如, 我在.env文件中設置了變量VUE_APP_BASE_URL = 'https://www.baidu.com', 在項目中我想獲取, 只需要使用process.env.VUE_APP_BASE_URL, 就可以取到。
  • 配置啟動命令
    在vue項目根目錄下,找到package.json文件,其中scripts對象是配置的vue啟動命令,比如npm run dev,配置如下:
"scripts": {
  "serve": "vue-cli-service serve",
  "serve-test": "vue-cli-service serve --mode test",
  "build": "vue-cli-service build",
  "test": "vue-cli-service build --mode test",
  "all": "vue-cli-service build && vue-cli-service build --mode test"
}

每一行說明如下:

  1. npm run serve, 啟動項目, 並且加載.env.env.development文件
  2. npm run serve-test, 啟動項目, 並且加載.env.env.test文件
  3. npm run build, 生產環境打包, 其中.env.env.production文件會加載
  4. npm run test, 測試環境打包, 其中.env.env.test文件會加載
  5. npm run all, 生產環境和測試環境同時打包, 加載不同的.env文件

關於文件的加載:

根據啟動命令vue會自動加載對應的環境,vue是根據文件名進行加載的,所以上面說“不要亂起名,也無需專門控制加載哪個文件

比如執行npm run serve命令,會先加載.env文件,然后自動加載.env.development文件,同名變量后加載文件會覆蓋先加載的文件變量,不同名的直接保留

查看、打印合並后的變量,使用process.env(全局屬性,任何地方均可使用):

console.log(process.env);

webpack提供了配置模式(mode)

通過選擇 development,production 或 none 之中的一個,來設置 mode 參數,你可以啟用 webpack 內置在相應環境下的優化。其默認值為 production 。

  1. 選擇 development 打包后,一些沒有依賴的方法、變量、文件會保留。
  2. 選擇 production 打包后,一些沒有依賴的方法、變量、文件會被移除。代碼會進行壓縮,比 development 的文件小。


免責聲明!

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



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