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/Установить драгоценные камни-стимул-рельсы

Это должно решить вашу проблему.

Другие вопросы по тегам