【发布时间】:2017-10-25 17:12:45
【问题描述】:
我正在使用一些包含 ES6 代码的 javascript 部署一个应用程序。
当我运行bundle exec rake assets:precompile RAILS_ENV=production 时,我得到:
ExecJS::RuntimeError: SyntaxError: Unexpected token: punc ())
这是因为prueba.js有以下内容:
var greetings = () => {
let saludo = 'tio';
console.log('saludo' + saludo)
};
greetings();
而且 Uglify 无法识别 ES6。为了解决这个问题,我已经安装并设置了 gem:
gem 'sprockets-es6', '~> 0.9.2'
gem 'babel-transpiler', '~> 0.7.0'
但是没有用,
在 application.rb 中,我有:
require "action_view/railtie"
require "sprockets/railtie"
# require "rails/test_unit/railtie"
require 'sprockets/es6'
注意:如果我在没有 RAILS_ENV=production 的情况下运行 rake assets:precompile,我不会收到错误
【问题讨论】:
-
我认为你需要将
.es6添加到Sprockets的文件扩展名中才能通过babel运行JS。 -
@max 我更改为 .es6 扩展名,但出现其他错误:
ExecJS::RuntimeError: SyntaxError: 'return' outside of function
标签: ruby-on-rails ecmascript-6 uglifier