Hotwire Rails - невозможно использовать оператор импорта вне модуля
Я установил hotwire-rails в существующий проект Rails. Прежде чем писать какой-либо код, связанный с Hotwire, я получаю следующую ошибку в консоли браузера на каждой странице:
Uncaught SyntaxError: Cannot use import statement outside a module
в
application.debug-86...95.js:53462
Строка, к которой относится ошибка, следующая:
import { Controller } from "@hotwired/stimulus"
Я использую Rails 6.1.3.1 со Sprockets для ресурсов, я раньше использовал только hotwire в проектах Rails с использованием webpack, поэтому не уверен, имеет ли это какое-то отношение к этому.
2 ответа
Не уверен, что это решение вашей проблемы, но у меня была точно такая же ошибка после удаления webpack и установки importmap-rails в недавно обновленном приложении Rails 7. Но это имело в виду моеapplication.js
импортирует операторы, а не контроллер js. Решил это, добавивtype:"module"
кjavascript_include_tag
У меня было в одном из моих макетов. Окончательное решение:
<%= javascript_include_tag 'application', type: "module" %>
Или просто удалите javascript_include_tag, если вы уже импортируете все черезjavascript_importmap_tags
В Rails 7 turbo поставляется с несколькими драгоценными камнями, которые вам нужно установить вручную, если вы используете Rails 6.
1/ Установите gem importmap-rails
2/Установить драгоценные камни-стимул-рельсы
Это должно решить вашу проблему.