max*_*ner 4 ruby ruby-on-rails heroku execjs
我有一些代码使用模板字符串在开发中工作,但推送到Heroku失败了这个错误:
ExecJS::RuntimeError: SyntaxError: Unexpected character '`'
Run Code Online (Sandbox Code Playgroud)
跑步bundle exec rake assets:precompile RAILS_ENV=production显示同样的事情.
代码是这样的:
`1 + 1 is ${1 + 1}`
Run Code Online (Sandbox Code Playgroud)
我想知道Heroku Node版本是否太低而无法支持.我根本没有定制这个.只需使用默认配置推送Rails 4应用程序.
我最终找到了这个帖子:https://github.com/browserify-rails/browserify-rails/issues/137
在哪里我找到了评论该行的建议:
config.assets.js_compressor =:uglifier
问题是'uglifier'(缩小器)与ES6语法无法正常工作.
正如线程所提到的,使用此修复意味着脚本将不再缩小,所以如果有更好的解决方案,我仍然会很好奇.
Uglifier现在有实验性的ES6支持,但你必须先配置它:
在 config/environments/production.rb
更换
config.assets.js_compressor = :uglifier
同
config.assets.js_compressor = Uglifier.new(harmony: true)
但是,ES6没有经过广泛测试.使用ES6代码的更稳定的替代方案是首先使用例如babel-transpiler或使用Closure Compiler直接缩小到ES5代码.
文件:https://github.com/lautis/uglifier#user-content-es6--es2015--harmony-mode
| 归档时间: |
|
| 查看次数: |
1842 次 |
| 最近记录: |