我们的Linux服务器上有几个不同版本的 Node,我的服务基于 Node v0.11.14。然而,其他人的代码必须运行在低于 v0.11 的 Node 版本中,否则他们的服务将无法使用。因此,我不能定义全局 Node 版本为 v0.11。我只想运行 pm2 监控我的基于 Node v0.11 的服务。
有没有办法在不改变全局 Node 版本的情况下,在 Node v0.11 上运行我的 pm2?谢谢。
使用pm2并在--interpreter标志下指定Node版本的绝对路径:
sudo pm2 start app.js --interpreter=/home/ken/.nvm/v4.4.2/bin/node
sudo pm2 start app.js --interpreter=/home/ken/.nvm/v7.4.0/bin/node
如果你在我提到 --interpreter="***.."
的地方更改节点版本,应用程序将在精确的节点版本中运行。
完成上述方法后,使用以下命令进行验证
sudo pm2 show 'app name'
{
apps : [{
name : 'API',
script : 'api.js',
interpreter : 'node@6.9.1'
}]
}
要同时运行多个版本,在 pm2
中,你可以使用 --interpreter
选项并指定你想要的 Node 版本的路径。
如果你使用 n
来管理 Node 版本,请运行 n bin v4.2.0
来获取该 Node 版本的路径。
如果这对你来说真的不起作用,以下是一些调试步骤:
确保使用解释器和生态系统文件上解释器的完整绝对路径:
interpreter: "/home/Mattia/.nvm/versions/node/v18.17.1/bin/node"
将 pm2 更新到最新版本:
$ npm install pm2@latest -g
然后终止 pm2 进程:
pm2 kill
并重新启动 pm2 进程。
安装https://github.com/creationix/nvm
然后安装特定的Node版本:
nvm install 0.11.14
与其在 shell 中使用通用版本,不如使用特定版本:
nvm use 0.11.14
node -v // v0.11.14
nvm use 0.11.14
会将全局node版本更改为v0.11.14吗? - hwoarangzk
nvm版本0.33.5
,我必须使用以下命令:sudo pm2 start app.js --interpreter=/home/ken/.nvm/verions/node/v7.4.0/bin/node
。 - sujeet