rails execjs在使用NVM时找不到节点

Sni*_*irD 7 ruby-on-rails node.js execjs nvm

我正在使用NVM来管理系统上的Node.js版本,自从我安装它以后,我的rails应用就停止工作了.

ExecJS似乎找不到节点运行时,给出错误:

Node.js (V8) runtime is not available on this system (ExecJS::RuntimeUnavailable)
Run Code Online (Sandbox Code Playgroud)

需要采取什么行动才能使NVM与ExecJS发挥良好的作用?

bon*_*onh 1

在我们的例子中,我们以“普通”用户身份使用以下命令运行 Rails

bundle exec puma -C config/puma.rb
Run Code Online (Sandbox Code Playgroud)

只要你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
Run Code Online (Sandbox Code Playgroud)

下次您以该用户身份登录时,which node应指示以下路径nvm

~/.nvm/versions/node/v0.12.7/bin/node
Run Code Online (Sandbox Code Playgroud)

同样,Rails 也会选择它node作为要使用的。