如何在rails应用程序的ruby中使用ES6(ES2015)?

时间:2017-02-25 19:27:06

标签: ruby-on-rails ecmascript-6 transpiler

我有一个4.2 rails应用程序,正在考虑慢慢将JS转换为ES6。现在我正在使用资产管道中的标准rails清单文件来预处理我的js。

我不知道如何在我的rails应用程序中开始使用ES6(添加一个简单的步骤)。

是否有内置方法,推荐工具或工作流程?

3 个答案:

答案 0 :(得分:17)

目前遗憾的是,并没有真正符合标准的'这样做的方式 - 很多都取决于你的应用程序的要求,以及你是否能够升级链轮和/或Rails。

选项1: 继续使用Rails 4.2和Sprockets 3,然后使用此gem添加ES6支持并逐步迁移到ES6模块:https://github.com/rmacklin/sprockets-bumble_d

选项2: 升级到Sprockets 4(仍处于测试阶段),然后使用https://github.com/fnando/babel-schmooze-sprocketshttps://github.com/babel/ruby-babel-transpiler添加babel以获得ES6支持。两者都有相当可靠的文档。

选项3: 使用webpack代替链轮或沿链轮。谷歌搜索将揭示一些方法。 Rails 5.1(仍处于测试阶段)将通过webpacker gem引入本机webpack(以及babel)支持。无可否认,这可能是现有应用程序的更难选择。这里有一篇很好的文章:https://medium.com/statuscode/introducing-webpacker-7136d66cddfb#.cb4sixyah

答案 1 :(得分:3)

3年后为自己解答...

Rails> 5.1拥有webpacker以及对webpack构建和各种前端框架(如果需要)(响应,vue等)的本机支持

答案 2 :(得分:2)

将其替换为production.rb文件

config.assets.js_compressor = :uglifier

与此

config.assets.js_compressor = Uglifier.new(harmony: true)

对于开发者,Chrome会编译es6。

https://github.com/lautis/uglifier

https://www.rubydoc.info/gems/uglifier