我正在使用NVM來管理系統上的Node.js版本,並且自我安裝它以後,我的rails應用程序停止工作。使用NVM時,rails execjs找不到節點
ExecJS似乎無法找到節點運行時,給人的錯誤:
Node.js (V8) runtime is not available on this system (ExecJS::RuntimeUnavailable)
什麼使NVM需要行動與ExecJS玩好?
我正在使用NVM來管理系統上的Node.js版本,並且自我安裝它以後,我的rails應用程序停止工作。使用NVM時,rails execjs找不到節點
ExecJS似乎無法找到節點運行時,給人的錯誤:
Node.js (V8) runtime is not available on this system (ExecJS::RuntimeUnavailable)
什麼使NVM需要行動與ExecJS玩好?
在我們的例子中,我們運行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
作爲一個使用。
剛剛遇到這個問題我自己。基本上,NVM非常好,因爲它允許您在一臺計算機上安裝並運行多個不同版本的節點,而無需使用sudo權限。由於有多個版本,因此它不會自動在您的shell中爲您加載版本,您必須指定要使用的版本。 nvm use default
加載默認的Node環境(而不是默認的,你可以指定一個特定的版本)到當前的shell中,但是當shell被關閉時,這將停止工作。要永久更改,請使用nvm alias default node
,查看this issue瞭解更多信息。
您是否在運行rails應用程序之前嘗試運行'nvm use [YOUR_VERSION]'? – 19WAS85
你的Rails環境如何設置?如果您使用乘客,nvm使用的路徑可能會從乘客使用的路徑中丟失。看到我的答案在http://stackoverflow.com/questions/14187681/node-js-not-found-by-rails-execjs/24020042#24020042它可以幫助你診斷問題。 –
@WagnerAndrade謝謝! 'nvm use'爲我工作。 – dolzenko