Ruby on Rails 7彻底改变了对JavaScript的支持
Rails 7的Alpha版本抛弃了Webpacker,转而采用无节点的方法来捆绑JavaScript。
Ruby on Rails 7,这个有17年历史的Web应用框架的计划升级版,已经进入了alpha阶段,在Rails中编写JavaScript的新机制。
Rails 7采用了无节点的方法,而不必放弃NPM包,从而超越了Ruby on Rails在过去五年中一直使用的用于捆绑JavaScript的Webpacker工具。这种方法可以利用浏览器对ECMAScript 6、JavaScript模块、HTTP/2以及用于导入JS模块的Import Maps for Rails工具的支持进展。
此外,随着TurboLinks和Rails UJS被Stimulus JS框架和Turbo工具取代,以减少对自定义JS的需求,Rails现在有一个完整的开箱即用的前端设置用于编写Rails应用程序。根据9月15日发布的alpha版本的公告,不需要处理node_modules 中的Node依赖关系,不需要处理捆绑器配置,也不需要处理其他常见的JavaScript开发挑战。
Rails的开发者还改进了Rails和JavaScript + CSS捆绑器之间的整合。可以通过Rails的新功能触发的伴生宝石 [-javascript[bundler]](https://github.com/rails/jsbundling-rails/)和 -css[bundler]可以启动一个新的应用程序或改变一个以导入地图开始的应用程序,以使用Esbuild、Rollup.js、Webpack和其他技术。
关于开始使用Rails的说明可以在guidelines.rubyonrails.org找到。Rails 7.0的其他新增内容和变化:
- 加密属性已被添加到Active Record中,使应用程序能够在传统的静态和传输过程中提供工作中的加密。这提供了额外的安全性。
- 用于并行运行查询的异步查询加载。
- Rails的Spring应用预加载器不再是默认开启的,更快的计算机已经使它变得不再重要。
ActionController::Live#send_stream在Rails中,我们可以很容易地将控制器动作中正在生成的文件流化。- Active Storage现在使用更安全和更快的
libvips作为其默认的变体处理器。 - 并行测试现在将CPU核心数与测试数进行比较,并相应地调整并行化程度。