egg-script 默认写死 NODE_ENV=production

2020-10-12 14:37:09 +08:00
 5wunian
今天查 NODE_ENV 变量无法根据外面环境变动,测了很多遍排查了一天! egg-scrip -env=test 无法对 NODE_ENV 生效
3849 次点击
所在节点    Node.js
5 条回复
rockdai
2020-10-12 14:40:42 +08:00
ZehaiZhang
2020-10-12 14:59:46 +08:00
--env 吧,你是不是少了个 - 导致的
5wunian
2020-10-12 16:49:37 +08:00
兄弟,暂时不想改了。地址在这里: https://github.com/eggjs/egg-scripts/blob/master/lib/cmd/start.js
egg issue 里討论的再多,都不如 Show 代码.
Model 层引用需要改为使用 EGG_SERVER_ENV 就 OK 了.egg 框架里 对 NODE_ENV 暂时不友好,不喜欢至少不要写死啊,这破坏了预期啊.已提 ISSUE
https://github.com/eggjs/egg/issues/4492
5wunian
2020-10-12 16:51:06 +08:00
@ZehaiZhang 这个是赋值给 EGG_SERVER_ENV 环境变量的
ZehaiZhang
2020-10-12 17:01:32 +08:00
@5wunian
1.那应该是正文笔误,`egg-scrip --env=test ` 而不是`egg-scrip -env=test ` ,后者少一个'-'
2.我一般通过`ctx.app.config.xxx`来获取环境变量
更多请参考官方文档: https://eggjs.org/zh-cn/basics/env.html
很多 Node.js 应用会使用 NODE_ENV 来区分运行环境,但 EGG_SERVER_ENV 区分得更加精细。一般的项目开发流程包括本地开发环境、测试环境、生产环境等,除了本地开发环境和测试环境外,其他环境可统称为服务器环境,服务器环境的 NODE_ENV 应该为 production 。而且 npm 也会使用这个变量,在应用部署的时候一般不会安装 devDependencies,所以这个值也应该为 production 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/714166

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX