[英]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 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
:
請注意,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.