我有一个 RoR (4.1) 应用程序,我正在尝试使用 Passenger 和 Nginx 运行它。我想在我的 CI 服务器(jenkins)上进行 bundle ,但是当我复制文件时,我遇到了可怕的情况:
找不到 JavaScript 运行时。有关可用运行时的列表,请参阅 https://github.com/sstephenson/execjs。 (ExecJS::运行时不可用)
我的 Gemfile 中有 therubyracer,我可以在 $GEM_HOME (./vendor/bundle/ruby/1.9.1/gems/) 中看到它。显然我可以在网络服务器上 bundle 安装并解决问题,但这正是我试图避免的。
我尝试过使用“bundle pack --all”,但没有效果,但我目前在构建服务器上使用“bundle install --deployment”,然后压缩整个文件夹并将其移动到网络服务器。构建服务器与 Web 服务器使用相同的发行版 (Debian 7 x64)。
有人知道我错过了什么吗?是否可以在不本地运行 bundle 安装的情况下使其工作?
bundler 版本 1.7.3
最佳答案
我遇到了这个问题,这就是我发现的:
你需要一个像nodejs这样的javascript运行库来解决这个问题。
对于 Ubuntu 用户,请在终端中尝试以下命令:
sudo apt-get install nodejs
要使用 yum 在系统上安装 Nodejs,请在终端中尝试以下操作:
yum -y install nodejs
希望有帮助:)
关于ruby-on-rails - execjs - 找不到 JavaScript 运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26384457/