刺激JS控制器未连接.Rails 7//importmap//刺激



我最近去掉了webpacker,安装了importmapturbo。我的Stimulus JS控制器没有呈现任何内容。

importmap.rb :
# Pin npm packages by running ./bin/importmap
pin "application", 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"
pin "@hotwired/turbo-rails", to: "turbo.js", preload: true
typewriter_controller.js :

import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
connect() {
// some code...
}
}
application.html.erb:

<head>
some stuff..
<%= stylesheet_link_tag 'application', media: 'all' %>
<%= javascript_include_tag "turbo", type: "module-shim" %>
<%= javascript_importmap_tags %>
</head>

我试着重新安装刺激宝石,但没有成功。我对这个没什么想法了。

根据stimulus-rails安装指南,我会检查以下文件是否以这种方式配置:

app/javascript/controllers/index.js
import { application } from "controllers/application"
// Eager load all controllers defined in the import map under controllers/**/*_controller
import { eagerLoadControllersFrom } from "@hotwired/stimulus-loading"
eagerLoadControllersFrom("controllers", application)
app/javascript/controllers/application.js
import { Application } from "@hotwired/stimulus"
const application = Application.start()
// Configure Stimulus development experience
application.debug = false
window.Stimulus   = application
export { application }
app/javascript/application.js
import "controllers"

这假设您确实在使用importmap,而不是其他JavaScript绑定器(例如yarn(。

最新更新