如何检查我的 pm2 应用程序 NODE_ENV 是否已设置?

新手上路,请多包涵

所以我第一次部署了一个带有 node 和 pm2 的站点,我要回去做一些优化和阅读最佳实践等。

我读到您可以通过设置 NODE_ENV=production 获得很多好处。

我在 pm2 文档中找到了这个:

 [process.json]
"env_production" : {
  "NODE_ENV": "production"
}

...

$ pm2 start process.json --env production

所以,我做到了,但我不知道它是否有效。在试图弄清楚如何检查它时,我学会了尝试:

 $ node
> process.env.NODE_ENV
> undefined

所以,这不是一个好兆头.. 但是,由于我对低级东西如何工作的理解有限,我可以猜测 pm2 可能将每个应用程序作为单独的节点进程启动?因此,当我尝试检查它时,也许我不在正确的过程中。

另外,我不知道我是否必须制作一个新的 ~/.pm2/dump.pm2 文件,因为这可能会覆盖我设置的选项? (因为我使用 pm2 startup )。

如何检查我的 pm2 应用程序的 NODE_ENV 是否已设置?

原文由 Kenmore 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 785
2 个回答

要回答标题中的实际问题:

在您的脚本中,对我而言,我的 Express 应用程序的 app.js 文件,您可以使用 process.env.NODE_ENV 获取 NODE_ENV 的当前值,如果需要,请注销。

更好的方法是使用 PM2 的 Process Metrics 模块,又名 pmx

 yarn add pmx

或者

npm install pmx --save

然后

const Probe = require('pmx').probe()

Probe.metric({
  name    : 'NODE_ENV',
  value   : function() {
    return process.env.NODE_ENV
  }
})

现在它将显示在对 pm2 monit 的调用中(左下角)。


要更改您的环境:

您必须终止并重新启动该过程以更改您的环境。

 $ pm2 kill && pm2 start pm2.json --env production

以下还不够好:

 pm2 restart pm2.json --env production

原文由 Kenmore 发布,翻译遵循 CC BY-SA 4.0 许可协议

您还可以通过运行 pm2 show <yourServerName> 检查您的 NODE_ENV 。这将输出有关您正在运行的服务器的信息,包括 node env

此外,您可以通过运行 pm2 env 0 检查您的环境变量。这将显示正在运行的节点进程的所有环境变量。

原文由 mani 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题