ruby-on-rails Hotwire Rails -不能在模块外部使用import语句

rqqzpn5f  于 2023-02-06  发布在  Ruby
关注(0)|答案(2)|浏览(179)

我已经在一个现有的Rails项目中安装了hotwire-rails,在编写任何hotwire相关代码之前,我在浏览器控制台的每个页面上都遇到了以下错误:
Uncaught SyntaxError: Cannot use import statement outside a module输入application.debug-86...95.js:53462
错误引用的行如下:

import { Controller } from "@hotwired/stimulus"

我使用的是带有链轮的Rails6.1.3.1,我以前只在使用webpack的Rails项目中使用过hotwire,所以不确定这是否与它有关。

fiei3ece

fiei3ece1#

我不确定这是否能解决你的问题,但是我在最近更新的Rails 7应用程序中删除webpack并安装importmap-rails后也遇到了同样的错误。但是它引用的是我的application.js imports语句,而不是js控制器。通过将type:"module"添加到我的一个布局中的javascript_include_tag中解决了这个问题。最终解决方案:

<%= javascript_include_tag 'application', type: "module" %>

或者,如果您已经通过javascript_importmap_tags导入了所有内容,则只需删除javascript_include_tag

zd287kbt

zd287kbt2#

在Rails 7中,turbo预先打包了一些gem,如果您使用的是Rails 6,则需要手动安装这些gem。
1/安装gem importmap-rails
2/安装gem stimulus-rails
这应该能解决你的问题。

相关问题