我正在MacOS上运行MacOS列表,而这些项目节点正在运行nvm
托管节点版本。根据对versioning
列的期望,它应该分别根据节点进程的package.json版本号显示各自的节点进程版本。
但它显示的是nvm
(节点版本管理器)的版本。这很奇怪。任何人都有线索,或者这是来自PM2的bug?这也发生在一对正在MacOS上工作的队友身上。
发布于 2021-09-06 17:33:50
我终于理解了pm2
的工作逻辑。当前安装节点由nvm
管理,pm2
在节点版本中全局安装。
当使用以下样式启动上述进程时:
{
...
script: 'npm',
args: 'run start:auth'
...
}
在pm2 config.js (启动脚本)中,它间接要求PM2引用nvm文件夹,在那里使用npm
。在这样的情况下,当我们通过调用pm2 info auth
检查进程时,它显示了这一行,这给了我们提示,pm2将读取package.json
驻留在~/.nvm
文件夹中,从而成为nvm的版本。
因此,神秘的是解决了。
注意: PM2将从repository root
中读取第一个可用的package.json
,或者在script path
中的某个可用位置(例如,当我们执行pm2 info <process>
时)。也就是说,在正常情况下,我们只在生产环境中使用pm2,我们倾向于使用它来启动实际的*.js脚本,并且它将正确地处理package.json,不会出现任何问题。
https://stackoverflow.com/questions/68753840
复制相似问题