https://eggjs.org/zh-cn/basics/env.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E7%8E%AF%E5%A2%83


轉載:https://eggjs.org/zh-cn/basics/env.html#自定義環境

 

運行環境

一個 Web 應用本身應該是無狀態的,並擁有根據運行環境設置自身的能力。

指定運行環境

框架有兩種方式指定運行環境:

  1. 通過 config/env 文件指定,該文件的內容就是運行環境,如 prod。一般通過構建工具來生成這個文件。
// config/env
prod
  1. 通過 EGG_SERVER_ENV 環境變量指定運行環境更加方便,比如在生產環境啟動應用:
EGG_SERVER_ENV=prod npm start

應用內獲取運行環境

框架提供了變量 app.config.env 來表示應用當前的運行環境。

運行環境相關配置

不同的運行環境會對應不同的配置,具體請閱讀 Config 配置

與 NODE_ENV 的區別

很多 Node.js 應用會使用 NODE_ENV 來區分運行環境,但 EGG_SERVER_ENV 區分得更加精細。一般的項目開發流程包括本地開發環境、測試環境、生產環境等,除了本地開發環境和測試環境外,其他環境可統稱為服務器環境,服務器環境的 NODE_ENV 應該為 production。而且 npm 也會使用這個變量,在應用部署的時候一般不會安裝 devDependencies,所以這個值也應該為 production

框架默認支持的運行環境及映射關系(如果未指定 EGG_SERVER_ENV 會根據 NODE_ENV 來匹配)

NODE_ENV EGG_SERVER_ENV 說明
  local 本地開發環境
test unittest 單元測試
production prod 生產環境

例如,當 NODE_ENV 為 production 而 EGG_SERVER_ENV 未指定時,框架會將 EGG_SERVER_ENV 設置成 prod

自定義環境

常規開發流程可能不僅僅只有以上幾種環境,Egg 支持自定義環境來適應自己的開發流程。

比如,要為開發流程增加集成測試環境 SIT。將 EGG_SERVER_ENV 設置成 sit(並建議設置 NODE_ENV = production),啟動時會加載 config/config.sit.js,運行環境變量 app.config.env 會被設置成 sit

與 Koa 的區別

在 Koa 中我們通過 app.env 來進行環境判斷,app.env 默認的值是 process.env.NODE_ENV。但是在 Egg(和基於 Egg 的框架)中,配置統一都放置在 app.config 上,所以我們需要通過 app.config.env 來區分環境,app.env 不再使用。


免責聲明!

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



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