Rails 5-当前的ExecJS运行时不支持ES6。请安装最新的Node.js

时间:2018-07-19 06:30:03

标签: jquery ruby-on-rails node.js ruby assets

在Rails 5中,我使用以下宝石创建了一个新应用

gem 'devise'
gem 'execjs'
gem 'therubyracer', :platforms => :ruby
gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS
gem 'bootstrap', '~> 4.1.1'
gem 'bootstrap-glyphicons'
gem 'simple_form'
gem 'sprockets'
gem 'jquery-rails'
gem "letter_opener_web"
gem 'will_paginate', '~> 3.1.0'
gem 'local_time'

在application.html.erb文件中,

<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': true %>

在application.js中,

 //= require rails-ujs
 //= require jquery
 //= require jquery_ujs
 //= require activestorage
 //= require popper.min
 //= require local-time
 //= require bootstrap
 //= require_tree .

启动服务器并打开localhost:3000时,出现类似Current ExecJS runtime does't support ES6. Please install latest Node.js.的错误

我也尝试用sudo apt-get install nodejs来修复它,但是显示相同的错误。而node -vv8.11.2

请帮助我解决此问题。

2 个答案:

答案 0 :(得分:0)

我认为execjs试图使用以旧版apt软件包安装的nodejs。您可以创建链接nodejs-> node作为execjs,首先查找nodejs,然后查找node:

ln -s $(which node) $(which node)js   

或仅从apt软件包中删除安装的nodejs:

apt-get remove nodejs

execjs将使用节点

答案 1 :(得分:0)

删除gem 'therubyracer', :platforms => :ruby,然后再次执行bundle install,因为已安装了node.js(最新)。这应该可以解决大多数问题。