是否可以使用Sprockets 4在Rails 7中的javascript_include_tag上设置type=module

问题描述 投票:0回答:1

我一直在致力于一个迁移项目,将 Rails 5 升级到 Rails 7。我们决定继续使用 Sprockets,因为它是一个相当大的应用程序,迁移到新的工具集会产生比我们现在能承受的更多的工作.

一切似乎都运行良好(至少所有测试都通过),但是当我启动浏览器时,我在控制台中收到此错误消息:

Uncaught SyntaxError: Unexpected token 'export'
来自
application.js

我读到可以通过设置

type=module
<script>
来解决这个问题。

这可以吗?我在

javascript_include_tag
的文档中没有看到任何内容。

我的理解是,Sprockets 4 中包含了 ES6 支持,所以我不确定为什么会发生这种情况。

ecmascript-6 es6-modules ruby-on-rails-7 sprockets rails-sprockets
1个回答
0
投票

任何其他指定的选项将被视为脚本标记的 HTML 属性。

https://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html#method-i-javascript_include_tag

<%= javascript_include_tag "application.js", type: :module %>

要转译 ES6,您需要添加

gem "babel-transpiler"
并使用
.es6
扩展名而不是
.js

https://github.com/rails/sprockets?tab=readme-ov-file#es6-support

© www.soinside.com 2019 - 2024. All rights reserved.