运行环境一般分为:
- 本地环境
- 本地开发环境
- 本地测试环境
- ……
- 服务器环境
- 生产环境
- ……
应用本身对环境是无感的,我们只需要在启动应用时为它指定配置,应用无需知道这个配置属于哪一个环境。
指定环境
- 通过文件(config/env)指定
- 通过环境变量指定:
EGG_SERVER_ENV=prod pnpm start
(推荐方式😉)
获取环境
从配置对象中获取:config.env
。
配置环境
在 Config 中配置。
与 NODE_ENV
的区别
NODE_ENV
是大部分 Node.js 应用使用的环境变量,例如 NODE_ENV=production
。
EGG_SERVER_ENV
是 Egg.js 应用使用的环境变量,比NODE_ENV
更加精细,例如EGG_SERVER_ENV=prod
。
Egg.js 应用优先使用EGG_SERVER_ENV
环境变量,未定义时使用NODE_ENV
来确定EGG_SERVER_ENV
。
不同环境下对应的EGG_SERVER_ENV
值为:
- 本地开发环境:
local
- 本地(单元)测试环境:
unittest
- 生产环境:
prod
自定义环境
例如自定义集成测试环境的步骤是:
- 设置
NODE_ENV=production
- 设置
EGG_SERVER_ENV=sit
- 配置 config/config.sit.ts
- 启动应用后
config.env
的值为"sit"
与 Koa 的区别
获取环境 | 默认值 | |
---|---|---|
Koa | app.env | process.env.NODE_ENV |
Egg | app.config.env | - |
评论区