我正在开发的应用程序突然停止部署到Heroku,错误是:

remote:        Gem::InstallError: execjs requires Ruby version >= 2.0.0.
remote:        An error occurred while installing execjs (2.5.1), and Bundler cannot continue.
remote:        Make sure that `gem install execjs -v '2.5.1'` succeeds before bundling.
remote:  !
remote:  !     Failed to install gems via Bundler.
remote:  !
remote:
remote:  !     Push rejected, failed to compile Ruby app

Ruby2.0对我来说不是一个可行的选择(我别无选择,只能在MS Windows上开发,而且上次我查看时,有太多Ruby2.0的东西不适用于Windows),但是我不认为我需要ExecJS-v2.5.1。我不会在gemfile中显式调用它,如果运行gem dependency execjs --reverse-dependencies我会得到:
Gem execjs-1.4.0
  multi_json (~> 1.0)
  rake (>= 0, development)
  Used by
    coffee-script-2.3.0 (execjs (>= 0))
    coffee-script-2.2.0 (execjs (>= 0))
    sprockets-2.12.3 (execjs (~> 1.0, develo
    sprockets-2.11.0 (execjs (~> 1.0, develo
    sprockets-2.1.3 (execjs (~> 1.0, develop
    uglifier-2.5.3 (execjs (>= 0.3.0))
    uglifier-1.2.6 (execjs (>= 0.3.0))

Gem execjs-2.2.1
  rake (>= 0, development)
  Used by
    coffee-script-2.3.0 (execjs (>= 0))
    coffee-script-2.2.0 (execjs (>= 0))
    uglifier-2.5.3 (execjs (>= 0.3.0))
    uglifier-1.2.6 (execjs (>= 0.3.0))

Gem execjs-2.2.2
  rake (>= 0, development)
  Used by
    coffee-script-2.3.0 (execjs (>= 0))
    coffee-script-2.2.0 (execjs (>= 0))
    uglifier-2.5.3 (execjs (>= 0.3.0))
    uglifier-1.2.6 (execjs (>= 0.3.0))

Gem execjs-2.3.0
  rake (>= 0, development)
  Used by
    coffee-script-2.3.0 (execjs (>= 0))
    coffee-script-2.2.0 (execjs (>= 0))
    uglifier-2.5.3 (execjs (>= 0.3.0))
    uglifier-1.2.6 (execjs (>= 0.3.0))

Gem execjs-2.4.0
  rake (>= 0, development)
  Used by
    coffee-script-2.3.0 (execjs (>= 0))
    coffee-script-2.2.0 (execjs (>= 0))
    uglifier-2.5.3 (execjs (>= 0.3.0))
    uglifier-1.2.6 (execjs (>= 0.3.0))

看起来我不需要任何比v2.4.0更高的版本(我读得对吗?)但我如何告诉我的宝石使用旧版本,而不是最新版本?

最佳答案

尝试在gemfile中锁定execjs版本:

gem 'execjs', '2.4.0'

08-05 02:12
查看更多