我试图使用蒙古/设计Rails 3.1模板(蒙古和设计),我一直得到一个错误说明ExecJS找不到JavaScript运行时。公平的时候,我没有安装任何,但我已经尝试安装Node.js, Mustang和Ruby Racer,但没有工作。
我找不到JavaScript运行时。参见sstephenson/ExecJS (GitHub)获取可用运行时的列表(ExecJS::RuntimeUnavailable)。
我需要做什么才能让它工作?
我试图使用蒙古/设计Rails 3.1模板(蒙古和设计),我一直得到一个错误说明ExecJS找不到JavaScript运行时。公平的时候,我没有安装任何,但我已经尝试安装Node.js, Mustang和Ruby Racer,但没有工作。
我找不到JavaScript运行时。参见sstephenson/ExecJS (GitHub)获取可用运行时的列表(ExecJS::RuntimeUnavailable)。
我需要做什么才能让它工作?
当前回答
2022年Mac的答案很简单:
编译安装nodejs
然后重新运行rails服务器。
其他回答
对于amazon linux(AMI):
sudo yum install nodejs npm --enablerepo=epel
在Gem文件中,写入
gem 'execjs'
gem 'therubyracer'
然后运行
bundle install
对我来说一切都很好:)
我使用Rails 7和引导5.2.3 Gem。在生产环境中,它运行在基于Alpine Linux的Docker容器中。对于我来说,仅仅安装nodejs和npm是不够的。我必须像这样安装纱线:
apk add --no-cache yarn
在此之后,错误消息才在生产中消失。
我通过nvm安装node,在使用Capistrano部署时遇到了这个问题。Capistrano没有自动加载nvm,因为它是非交互式运行的。
要修复,只需移动nvm添加到~/中的行。Bashrc升到顶端。该文件将看起来像这样:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
只需在gem文件中添加ExecJS和Ruby Racer,然后运行bundle install即可。
gem 'execjs'
gem 'therubyracer'
之后一切都会好起来的。