Rails 6 从 Turbolink 升级到 Turbo。如何在 application.js 中要求 Turbo-rails?

six*_*bit 8 ruby ruby-on-rails web turbolinks

我正在开发一个遗留应用程序,最近升级到 Rails 6.0.4。该应用程序使用sprockets, NOT webpacker

现在我正试图离开turbolinks和进入turbo-rails。此应用程序中的 js 文件均使用 sprockets require 指令,例如:

//= require jquery3
//= require turbolinks
Run Code Online (Sandbox Code Playgroud)

我似乎不知道如何将其应用到turbo-rails. 我已经安装了 gem 并删除了 Turbolinks,但我找到的所有文档都有类似import "@hotwired/turbo-rails".

我对前端的东西不是很了解,但我相信这是一个不同的(ES6?)语法。该应用程序目前已启用sprockets 3.7.2,我认为 sprockets 在版本 4 之前不支持 ES6。如果可能的话,我希望避免此升级触及更多依赖项...

是否可以//= require像我现在那样进行涡轮增压//= require turbolinks

six*_*bit 2

为了使用turbo-rails,您必须设置资产管道来转译 ES6。sprockets我的版本(3.7.2)不可能做到这一点,所以我有两个选择:

  • 升级至链轮4
  • 切换到用于webpacker资产管道的 Javascript 部分

有了其中之一,我应该能够使用import "@hotwired/turbo-rails".