最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

PM2 没有安装最新版本的 nodejs

网站源码admin27浏览0评论

PM2 没有安装最新版本的 nodejs

PM2 没有安装最新版本的 nodejs

之前,我的 ec2 服务器上安装了节点版本

v0.10.46
。对于最近的项目,我决定尝试使用 pm2 并使用安装 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 安装的。

编辑: 这是正在运行的 pm2 守护进程,使用

ps -ef | grep pm2
:

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

回答如下:

NVM 允许您一次运行多个版本的节点(在多个 shell 之间)。这意味着当您运行

nvm use
时,您正在运行的 shell 的上下文中使用该版本的节点。

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

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


如果这里的实际问题是 PM2 进程需要运行特定的 NodeJS 版本,而不是应用程序 PM2 正在生成,则在运行

nvm use
后重新启动 PM2 dameon 本身将使其以当前选择的 Node 版本启动通过
nvm
.

发布评论

评论列表(0)

  1. 暂无评论