如何在 ruby on rails 应用程序中使用 ES6 (ES2015)?
How do I use ES6 (ES2015) in a ruby on rails app?
我有一个 4.2 rails 应用程序,正在考虑慢慢将 JS 转换为 ES6。现在我正在使用资产管道中的标准 rails 清单文件来预处理我的 js。
我不确定如何开始在我的 rails 应用程序中使用 ES6(添加转译步骤)。
是否有内置方法或推荐的工具或工作流程?
不幸的是,目前并没有真正的 'standard' 方法来做到这一点 - 很大程度上取决于您的应用程序的要求以及您是否能够升级 Sprockets and/or 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-sprockets or https://github.com/babel/ruby-babel-transpiler 添加 babel 以支持 ES6。两者都有非常可靠的文档。
选项 3:
使用 webpack 代替或与 sprockets 一起使用。 google 搜索将揭示一些方法。 Rails 5.1(仍处于测试阶段)将通过 webpacker gem. Admittedly this may be the more difficult option for an existing application. There is a good article about it here: https://medium.com/statuscode/introducing-webpacker-7136d66cddfb#.cb4sixyah
引入原生 webpack(以及 babel)支持
在您的 production.rb 文件中替换它
config.assets.js_compressor = :uglifier
有了这个
config.assets.js_compressor = Uglifier.new(harmony: true)
对于 dev,Chrome 编译 es6。
3年后为自己回答...
Rails > 5.1 有 webpacker
和对 webpack 构建的本机支持和各种前端框架(如果需要)(react、vue 等)
我有一个 4.2 rails 应用程序,正在考虑慢慢将 JS 转换为 ES6。现在我正在使用资产管道中的标准 rails 清单文件来预处理我的 js。
我不确定如何开始在我的 rails 应用程序中使用 ES6(添加转译步骤)。
是否有内置方法或推荐的工具或工作流程?
不幸的是,目前并没有真正的 'standard' 方法来做到这一点 - 很大程度上取决于您的应用程序的要求以及您是否能够升级 Sprockets and/or 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-sprockets or https://github.com/babel/ruby-babel-transpiler 添加 babel 以支持 ES6。两者都有非常可靠的文档。
选项 3: 使用 webpack 代替或与 sprockets 一起使用。 google 搜索将揭示一些方法。 Rails 5.1(仍处于测试阶段)将通过 webpacker gem. Admittedly this may be the more difficult option for an existing application. There is a good article about it here: https://medium.com/statuscode/introducing-webpacker-7136d66cddfb#.cb4sixyah
引入原生 webpack(以及 babel)支持在您的 production.rb 文件中替换它
config.assets.js_compressor = :uglifier
有了这个
config.assets.js_compressor = Uglifier.new(harmony: true)
对于 dev,Chrome 编译 es6。
3年后为自己回答...
Rails > 5.1 有 webpacker
和对 webpack 构建的本机支持和各种前端框架(如果需要)(react、vue 等)