触发模块脚本加载后添加导入映射

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

我有一个 Rails 应用程序,但我的自定义 JavaScript 不起作用。 在 Chrome 控制台中我可以看到以下错误:

触发模块脚本加载后添加导入映射。

未捕获的类型错误:无法解析模块说明符“应用程序”。相对引用必须以“/”、“./”或“../”开头。

未捕获的类型错误:无法解析模块说明符“@hotwired/turbo-rails”。相对引用必须以“/”、“./”或“../”开头。

我无法理解为什么会出现这些错误,我将导入映射移到了带有类型模块的脚本之前,但我仍然收到此错误。 在我的 application.html.erb 中我有

<%= csrf_meta_tags %>
<%= csp_meta_tag %>

<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_importmap_tags %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true, type: "module" %>

这是我的 importmap.rb 文件:

# Pin npm packages by running ./bin/importmap

pin "application", preload: true
pin "@hotwired/turbo-rails", to: "turbo.min.js", preload: true
pin "@hotwired/stimulus", to: "stimulus.min.js", preload: true
pin "@hotwired/stimulus-loading", to: "stimulus-loading.js", preload: true
pin_all_from "app/javascript/controllers", under: "controllers"

这是我的 app/javascript/application.js 文件:

// Configure your import map in config/importmap.rb. Read more: https://github.com/rails/importmap-rails
import "@hotwired/turbo-rails"
import "controllers"

这是应用程序/javascript/cotrollers/application.js

import { Application } from "@hotwired/stimulus"

const application = Application.start()

// Configure Stimulus development experience
application.debug = false
window.Stimulus   = application

export { application }

这是app/assets/javascripts/application.js的内容

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require_tree .

我在 app/assets/javascripts/ 文件夹中看不到自定义 javascript。 我缺少什么?谢谢

javascript ruby-on-rails
1个回答
0
投票

当我的代码中有剩余的

<%= javascript_include_tag("turbo", type: "module") %>
指令时,我遇到了同样的问题。

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