V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
5wunian
V2EX  ›  Node.js

egg-script 默认写死 NODE_ENV=production

  •  
  •   5wunian · Oct 12, 2020 · 4839 views
    This topic created in 2026 days ago, the information mentioned may be changed or developed.
    今天查 NODE_ENV 变量无法根据外面环境变动,测了很多遍排查了一天! egg-scrip -env=test 无法对 NODE_ENV 生效
    5 replies    2020-10-12 17:01:32 +08:00
    rockdai
        1
    rockdai  
       Oct 12, 2020
    ZehaiZhang
        2
    ZehaiZhang  
       Oct 12, 2020
    --env 吧,你是不是少了个 - 导致的
    5wunian
        3
    5wunian  
    OP
       Oct 12, 2020
    兄弟,暂时不想改了。地址在这里: 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
        4
    5wunian  
    OP
       Oct 12, 2020
    @ZehaiZhang 这个是赋值给 EGG_SERVER_ENV 环境变量的
    ZehaiZhang
        5
    ZehaiZhang  
       Oct 12, 2020
    @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 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5101 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 09:07 · PVG 17:07 · LAX 02:07 · JFK 05:07
    ♥ Do have faith in what you're doing.