rails execjs не может найти узел при использовании NVM

Я использую NVM для управления своими версиями Node.js в системе, и с тех пор, как я установил его, мои приложения rails перестают работать.

ExecJS не может найти время выполнения узла, выдавая ошибку:

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

какие действия необходимы, чтобы NVM хорошо работал с ExecJS?


person SnirD    schedule 17.10.2013    source источник
comment
Вы пытались запустить nvm use [YOUR_VERSION] перед запуском приложения rails?   -  person 19WAS85    schedule 30.12.2013
comment
Как настроена ваша среда Rails? Пути, которые использует nvm, могут отсутствовать в пути, который использует пассажир, если вы используете пассажира. См. мой ответ на stackoverflow.com/questions/14187681/ это может помочь вам диагностировать проблему.   -  person Travis Pessetto    schedule 03.06.2014
comment
@WagnerAndrade спасибо! nvm use работал на меня.   -  person dolzenko    schedule 30.10.2015
comment
@dolzenko, вы можете проверить мой ответ, nvm use не сохраняется   -  person James L.    schedule 22.03.2017


Ответы (2)


Только что сам столкнулся с этой проблемой. По сути, NVM хорош тем, что позволяет устанавливать и запускать несколько разных версий Node на одном компьютере без привилегий sudo. Поскольку существует несколько версий, он не загружает версию в вашу оболочку автоматически, вам нужно указать, какую из них вы хотите использовать. nvm use default загружает среду Node по умолчанию (вместо дефолтной можно указать конкретную версию) в текущую оболочку, но это перестанет работать при закрытии оболочки. Чтобы сделать изменение постоянным, используйте nvm alias default node. Дополнительные сведения см. в этой проблеме.

person James L.    schedule 21.03.2017

В нашем случае мы запускаем 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 как тот, который будет использоваться.

person bonh    schedule 25.01.2016