【问题标题】:Current ExecJS runtime does't support ES6当前的 ExecJS 运行时不支持 ES6
【发布时间】:2018-07-17 10:39:42
【问题描述】:

rake assets:precompile 我的 rails 项目抛出以下错误:

rake 中止! 当前的 ExecJS 运行时不支持 ES6。请安装最新的 Node.js。

以下是环境信息:

rails -v
Rails 5.0.7

ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

node -v
v6.11.1

我尝试重新安装我所有的 gem。但是,错误仍然来了。操作系统是 RHEL。

【问题讨论】:

  • 你已经安装了node.js,你使用了哪个命令。需要编译Js代码
  • 不,我们没有安装 node js。它默认出现在操作系统产品中。操作系统是 RHEL 7.2

标签: ruby-on-rails node.js ruby-on-rails-5 rake execjs


【解决方案1】:

在将 autoprefixer-rails 升级到版本 9.0.0 后,我遇到了同样的问题。我通过将 autoprefixer-rails 设置为 9 之前的版本来修复它:

gem 'autoprefixer-rails', '8.6.5'

在我的 Gemfile 中

【讨论】:

  • 使用 Rails 4.2 的相同问题和解决方案
【解决方案2】:

升级到 Rails 5.2 后我遇到了类似的问题

我的解决方案是添加这一行

 # make the ExecJs use NodeJs
 ENV['EXECJS_RUNTIME'] = 'Node'

在这个文件中

config/boot.rb

然后重启rails服务器

【讨论】:

  • 谢谢 Quy,我很高兴能帮上忙 :)
【解决方案3】:

Gemfile 中将therubyracer 替换为mini_racer

# gem 'therubyracer', platforms: :ruby
gem 'mini_racer', platforms: :ruby

然后:

$ bundle install

【讨论】:

    【解决方案4】:

    在 Autoprefixer-rails gem 中打开了一个关于此错误的类似问题,但它是从 ActionView 模板中抛出的。请留意贡献者的回复:

    https://github.com/ai/autoprefixer-rails/issues/137

    【讨论】:

      【解决方案5】:

      安装 NodeJS 解决了我的问题。

      【讨论】:

      • 这不是答案,请考虑发表评论。
      猜你喜欢
      • 1970-01-01
      • 2015-04-24
      • 2014-12-10
      • 2020-02-16
      • 2023-01-25
      • 1970-01-01
      • 2012-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多