PM2 没有安装最新版本的 nodejs
PM2 not taking the latest version of nodejs installed
之前,我的 ec2 服务器上安装了节点版本 v0.10.46
。对于最近的项目,我决定尝试使用 pm2 并使用安装 pm2
npm install pm2 -g
.
但是,pm2 start index.js
出错了,因为该项目使用了一些带有箭头函数和 let 关键字的 ES6 语法。
因此,我使用 nvm 将节点版本更新到最新的 v6.9.1,这也是我们在本地开发时使用的相同版本 (windows)。
然而,pm2 start 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 用户身份安装了 nvm 运行 node v6.9.1 和 pm2,但都没有成功。我得到同样的错误。
NVM 允许您一次 运行 节点的多个版本(在多个 shell 之间)。这意味着当您 运行 nvm use
您正在 运行ning shell.
的上下文中使用该版本的节点
鉴于 PM2 运行s 作为守护进程,我相信它会启动自己的进程,这就是它不使用当前 nvm 选择版本的原因。
这个 GitHub 问题显示了解释器标志的用法,这可能对您的特定问题有所帮助 https://github.com/Unitech/pm2/issues/1034
如果这里的实际问题是 PM2 进程需要 运行 特定的 NodeJS 版本,而不是应用程序 PM2 正在产生,在 运行 之后重新启动 PM2 dameon nvm use
将使用 nvm
选择的当前版本的 Node 启动。
之前,我的 ec2 服务器上安装了节点版本 v0.10.46
。对于最近的项目,我决定尝试使用 pm2 并使用安装 pm2
npm install pm2 -g
.
但是,pm2 start index.js
出错了,因为该项目使用了一些带有箭头函数和 let 关键字的 ES6 语法。
因此,我使用 nvm 将节点版本更新到最新的 v6.9.1,这也是我们在本地开发时使用的相同版本 (windows)。
然而,pm2 start 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 用户身份安装了 nvm 运行 node v6.9.1 和 pm2,但都没有成功。我得到同样的错误。
NVM 允许您一次 运行 节点的多个版本(在多个 shell 之间)。这意味着当您 运行 nvm use
您正在 运行ning shell.
鉴于 PM2 运行s 作为守护进程,我相信它会启动自己的进程,这就是它不使用当前 nvm 选择版本的原因。
这个 GitHub 问题显示了解释器标志的用法,这可能对您的特定问题有所帮助 https://github.com/Unitech/pm2/issues/1034
如果这里的实际问题是 PM2 进程需要 运行 特定的 NodeJS 版本,而不是应用程序 PM2 正在产生,在 运行 之后重新启动 PM2 dameon nvm use
将使用 nvm
选择的当前版本的 Node 启动。