繁体   English   中英

PM2没有安装最新版本的nodejs

[英]PM2 not taking the latest version of nodejs installed

以前,我的ec2服务器上安装了节点版本v0.10.46 对于最近的项目,我决定尝试pm2并使用npm install pm2 -g

但是, pm2 start index.js错误,因为该项目使用了带箭头函数和let关键字的一些ES6语法。

在此输入图像描述

因此,我使用nvm将节点版本更新到最新的v6.9.1,这也是我们在本地(windows)上开发时使用的版本。

但是,pm2启动index.js再次出错并出现同样的错误: 在此输入图像描述

pm2 show index暗示nodejs版本仍未更新。 我删除了旧的nodejs版本,再次安装pm2,仍无济于事。

我尝试了其他方法,使用:

pm2 start index.js --interpreter=~/.nvm/versions/node/v6.9.1/bin/node

强制pm2使用最新安装的节点版本。 每一次尝试都给出了相同版本的nodejs相同的错误。 为什么Pm2没有采用最新版本的节点并且坚持使用0.10.46?

如果它有帮助:

which node
~/.nvm/versions/node/v6.9.1/bin/node
which pm2
~/.nvm/versions/node/v6.9.1/bin/pm2

此外, v0.10.46使用nvm安装v0.10.46。

编辑:这是运行的pm2守护进程,使用ps -ef | grep pm2 ps -ef | grep pm2

pm2守护进程

请注意,ec2-user是登录用户,我也尝试过root用户。 我以root用户身份安装运行节点v6.9.1和pm2的nvm,但没有成功。 我犯了同样的错误。

NVM允许您一次运行多个版本的节点(在多个shell之间)。 这意味着当您运行nvm use您正在该运行shell的上下文中使用该版本的节点。

鉴于PM2作为一个守护进程运行,我相信它会启动它自己的进程,这就是为什么它不使用当前的nvm选择版本。

此GitHub问题显示了解释器标志的使用,这可能对您的特定问题有帮助https://github.com/Unitech/pm2/issues/1034


如果此处的实际问题是PM2进程需要运行特定的NodeJS版本,而不是应用程序PM2正在生成,则在运行nvm use后重新启动PM2 nvm use本身将启动nvm选择的当前版本的Node 。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM