当前的ExecJS运行时不支持ES6。

11

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代码需要它。 - Bijendra
不,我们没有安装Node.js。它是默认随操作系统提供的。操作系统是RHEL 7.2。 - Vipul Kumar
5个回答

19

我在将autoprefixer-rails升级到版本9.0.0后遇到了同样的问题。我通过设置autoprefixer-rails为早期版本(9.0之前)来解决它:

gem 'autoprefixer-rails', '8.6.5'

在我的Gemfile文件中


使用Rails 4.2相同的问题和解决方案。 - Adrian Carr

12

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

对我来说,解决方案是添加这一行代码

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

在这个文件中

config/boot.rb

然后重启Rails服务器


谢谢Quy,我很高兴能够帮助 :) - Ahmed Elkoussy

7

Gemfile文件中用mini_racer替换therubyracer

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

然后:
$ bundle install

5

-2
安装 NodeJS 解决了我的问题。

这不是一个答案,请考虑留下评论。 - Tyler2P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接