簡體   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