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

Ruby on rails 如何在ruby on rails应用程序中使用ES6(ES2015)?,ruby-on-rails,ecmascript-6,transpiler,Ruby On Rails,Ecmascript 6,Transpiler,我有一个4.2Rails应用程序,正在考虑慢慢地将JS转换为ES6。现在,我正在使用资产管道中的标准rails清单文件来预处理我的js 我不知道如何开始在我的rails应用程序中使用ES6(添加transfile步骤) 是否有内置的方法、推荐的工具或工作流程?不幸的是,目前还没有真正的“标准”方法,这在很大程度上取决于应用程序的要求以及您是否能够升级链轮和/或导轨 选项1: 停留在Rails 4.2和链轮3上,然后使用此gem添加ES6支持并逐渐迁移到ES6模块: 选项2: 升级到Sprocke

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

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


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

不幸的是,目前还没有真正的“标准”方法,这在很大程度上取决于应用程序的要求以及您是否能够升级链轮和/或导轨

选项1: 停留在Rails 4.2和链轮3上,然后使用此gem添加ES6支持并逐渐迁移到ES6模块:

选项2: 升级到Sprocket 4(仍处于测试阶段),然后使用或添加babel for ES6支持。两者都有相当可靠的文档

选项3:
使用网页包代替链轮或与链轮一起使用。谷歌搜索将揭示一些解决方法。Rails 5.1(仍处于测试阶段)将通过引入本地webpack(从而支持babel)。诚然,对于现有的应用程序来说,这可能是更困难的选择。这里有一篇关于它的好文章:

在production.rb文件中替换它

config.assets.js_compressor = :uglifier
用这个

config.assets.js_compressor = Uglifier.new(harmony: true)
对于开发人员,Chrome编译es6


三年后为自己作答


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

快速谷歌搜索显示可能对您有用。您想使用babel。这颗宝石可能适合你。这只会使Uglifier支持ES6语法-它不会传输它。“Ruby Babel Transpiler Ruby Babel是连接JS Babel Transpiler的桥梁。需要'Babel/Transpiler'Babel::Transpiler.transform File.read”(“foo.ES6”)安装$gem安装babel transpiler依赖项此库依赖于babel源gem,该源gem在新版本的babel发布时会随时更新。ExecJS ExecJS库用于自动为您的平台选择最佳的JavaScript引擎。有关支持的引擎的完整列表,请查看其自述。”我不会说某个东西有“可靠的文档”,因为它的整个文档页面可以放在StackOverflow注释中,剩余空间为600个字符。它告诉您如何从Javascript使用它,而不是从Rails使用它(Rails不是Javascript后端,因此Javascript中的示例后端代码在Rails上下文中非常无用)production@ShireeshaParampalli对