У меня есть новое приложение Rails 8, созданное с использованием Bootstrap, Ruby 3.4.7, MySQL и Haml, работающее в Firefox 145.
Все выглядит хорошо, за исключением неперехваченного исключения:
Uncaught SyntaxError: import declarations may only appear at top level of a module (application-c5c12643.js:2:1).
Единственная ошибка, которую я могу найти в визуализированном выводе, — это сбой в раскрывающемся списке навигационной панели (показанный ниже), который, как я читал в подобных отчетах об ошибках, похоже, связан с реализацией popper.js. Все предложенные исправления (см. importmap.rb ниже) не оказали заметного эффекта, и исключение сохраняется.
Исключение указывает на строку импорта "@hotwired/turbo-rails" файла application.js (показана ниже).
Будем признательны за ваши мысли и помощь.
application.html.haml:
%html{ lang: "en", "data-bs-theme" => "dark", "data-theme" => "dark" }
%head
%meta{ charset: "utf-8" }
%meta{ name: "viewport", content: "width=device-width, initial-scale=1" }
%title [title]
= csrf_meta_tags
= csp_meta_tag
= stylesheet_link_tag "application", "data-turbo-track": "reload"
= javascript_include_tag "application", "data-turbo-track": "reload", defer: true
%body
= render "shared/navbar"
.container.mt-4
- if notice
.alert.alert-success= notice
- if alert
.alert.alert-danger= alert
.container
= yield
= render "shared/footer"
_navbar.html.haml:
.navbar.navbar-expand-lg.fp-navbar.sticky-top
.container
...
%li.nav-item.dropdown
%a.nav-link.dropdown-toggle{ href: "#", role: "button", "data-bs-toggle" => "dropdown", "aria-expanded" => "false" }
Solutions
%ul.dropdown-menu
%li= link_to "Spot Trading", spot_trading_path, class: "dropdown-item"
%li= link_to "Forward Contracts", forward_contracts_path, class: "dropdown-item"
%li= link_to "Risk Management", risk_management_path, class: "dropdown-item"
...
application-c5c12643.js:
>>> import "@hotwired/turbo-rails"
Подробнее здесь: https://stackoverflow.com/questions/798 ... ear-at-top