2013-10-17 59 views
6

我正在使用NVM來管理系統上的Node.js版本,並且自我安裝它以後,我的rails應用程序停止工作。使用NVM時,rails execjs找不到節點

ExecJS似乎無法找到節點運行時,給人的錯誤:

Node.js (V8) runtime is not available on this system (ExecJS::RuntimeUnavailable) 

什麼使NVM需要行動與ExecJS玩好?

+2

您是否在運行rails應用程序之前嘗試運行'nvm use [YOUR_VERSION]'? – 19WAS85

+0

你的Rails環境如何設置?如果您使用乘客,nvm使用的路徑可能會從乘客使用的路徑中丟失。看到我的答案在http://stackoverflow.com/questions/14187681/node-js-not-found-by-rails-execjs/24020042#24020042它可以幫助你診斷問題。 –

+0

@WagnerAndrade謝謝! 'nvm use'爲我工作。 – dolzenko

回答

1

在我們的例子中,我們運行Rails的爲「普通」用戶與命令

bundle exec puma -C config/puma.rb 

只要你有一個「默認」 node組通過nvm,你應該沒問題。

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash 
nvm install v0.12.7 
nvm alias default v0.12.7 

登錄以該用戶下一次,which node應指出的路徑nvm下:

~/.nvm/versions/node/v0.12.7/bin/node 

同樣,Rails會拿起node作爲一個使用。

2

剛剛遇到這個問題我自己。基本上,NVM非常好,因爲它允許您在一臺計算機上安裝並運行多個不同版本的節點,而無需使用sudo權限。由於有多個版本,因此它不會自動在您的shell中爲您加載版本,您必須指定要使用的版本。 nvm use default加載默認的Node環境(而不是默認的,你可以指定一個特定的版本)到當前的shell中,但是當shell被關閉時,這將停止工作。要永久更改,請使用nvm alias default node,查看this issue瞭解更多信息。

相關問題