我找不到JavaScript运行时。请参见sstephenson/ExecJS(GitHub)以获取可用运行时列表(
ExecJS :: RuntimeUnavailable
)。我需要做什么才能使其工作?
ExecJS :: RuntimeUnavailable
)。我在Ubuntu 11.04上遇到了类似的问题。 安装Node.js解决了这个问题。
从Ubuntu 13.04 x64开始,你只需要运行:
sudo apt-get install nodejs
这将解决问题。
sudo yum install nodejs
gem 'therubyracer'
即可。 - Amree在您的 Gem 文件中,写入
gem 'execjs'
gem 'therubyracer'
然后运行
bundle install
一切都对我来说都很好 :)
我有一个类似的问题:我的 Rails 3.1 应用在 Windows 上运行良好,但在 Linux 上运行时与 OP 遇到了相同的错误。对我在两个平台上起作用的修复方法是将以下内容添加到我的 Gemfile
中:
gem 'therubyracer', :platforms => :ruby
诀窍在于知道:platforms => :ruby
实际上意味着仅与“C Ruby (MRI)或Rubinius”一起使用此gem,但不包括Windows。
:platforms
的其他可能值在bundler man页面中有描述。
FYI:Windows具有内置的JavaScript引擎,execjs
可以定位。 在Linux上没有内置的引擎,尽管有几个可用于安装。 therubyracer
是其中之一。 其他在execjs
的README.md中列出。
bundler
gemfile 的新手册:https://bundler.io/v2.2/man/gemfile.5.html#PLATFORMS - Luke Abel将以下的gem添加到我的Gemfile中解决了这个问题:
gem 'therubyracer'
然后打包您的新依赖项:
$ bundle install
另一种方法是只打包不包含你没有的 gem 组。
因此,执行以下操作:
bundle install --without assets
您无需修改Gemfile,当然前提是您不会执行资产链操作——这通常适用于非开发环境。Bundle将在.bundle/config文件中记住您的“--without”设置。
gem 'therubyracer'
gem 'execjs'
并运行
bundle install
针对亚马逊 Linux(AMI):
sudo yum install nodejs npm --enablerepo=epel
我曾遇到过类似的错误,但只在我的测试服务器上出现,而在生产环境中则没有。两个环境都已经安装了nodejs。
通过输入以下命令:
which node
sudo ln -s /usr/local/bin/node /usr/bin/node
nodejs
创建符号链接。 - Rafael Gomes Francisco我通过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