【发布时间】:2021-08-05 02:56:36
【问题描述】:
我正在开发一个遗留应用程序,最近升级到 Rails 6.0.4。该应用使用sprockets,而不是webpacker。
现在我正试图离开turbolinks 并转到turbo-rails。本应用中的js文件均使用链轮require指令,如:
//= require jquery3
//= require turbolinks
我似乎不知道如何将此应用于turbo-rails。我已经安装了 gem 并删除了 turbolinks,但是我找到的所有文档都有 import "@hotwired/turbo-rails" 之类的东西。
我对前端的东西不是很了解,但我相信这是一种不同的(ES6?)语法。这个应用程序目前在sprockets 3.7.2 上,我认为 sprockets 直到版本 4 才支持 ES6。如果可能的话,我想避免这次升级涉及更多的依赖项......
是否可以像我目前拥有 //= require turbolinks 一样使用 //= require turbo?'
【问题讨论】:
-
我看到有一个
/app/assets/javascript/turbo.js文件github.com/hotwired/turbo-rails/blob/main/app/assets/…,看起来你可以这样做//= require turbo,因为这是文件的名称,并且 sprockets 可以在 gems 中的这些文件夹中查找文件。不知道这是否足够,但它应该是一个开始 -
@arieljuod 谢谢。谢谢,我之前尝试过,但它似乎不适用于我的
$(document).on("turbolinks:load"但我猜资产编译期间没有错误的事实意味着正在找到文件。所以我又试了一次,现在我在 web 控制台中注意到了这个错误:Uncaught SyntaxError: export declarations may only appear at top level of a module指向Uncaught SyntaxError: export declarations may only appear at top level of a module。所以我猜文件 is 被找到,但还有其他问题?? -
我不希望 turbo 有相同的事件。我会考虑你是否应该先离开 Sprockets,然后切换到涡轮增压以避免不得不做一堆重复的工作。
-
//= require turbo 解决了我的问题,因为我不需要或使用 webpack/webpacker
标签: ruby-on-rails ruby web turbolinks