如何在Rails7中使用importmap来固定npm、yarn包?

kev*_*201 4 import-maps ruby-on-rails-7

我很高兴能够使用 Rails7,尤其是我们终于摆脱了 webpacker。然而,今天当我尝试尝试 Rails7 时,我不再了解如何捆绑 javascript 脚本......并且那里没有教程或者我只是找不到它。

例如,我想导入 jquery 所以我运行

yarn add jquery
Run Code Online (Sandbox Code Playgroud)

然后我写道:

// application.js
//importmap-rails
import "@hotwired/turbo-rails"
import "controllers"
import jquery from 'jquery'
Run Code Online (Sandbox Code Playgroud)

但它不起作用,然后我阅读了importmap-rails上的自述文件,然后运行

./bin/importmap pin jquery
Run Code Online (Sandbox Code Playgroud)

然后它添加了一行config/importmap.rb

pin "jquery", to: "https://ga.jspm.io/npm:jquery@3.6.0/dist/jquery.js"
Run Code Online (Sandbox Code Playgroud)

它有效,但是,这并不是我所期望的。我希望 jquery 来自node_modules/而不是 CDN

我怎样才能做到这一点?导入我从yarn/npm安装的npm包?或者只是指出我在哪里可以找到有关如何在 Rails7 中使用 javascript 的文档?

小智 9

./bin/importmap pin jquery --download
Run Code Online (Sandbox Code Playgroud)

会下载它。

在 Rails 中使用 JavaScript (关于处理 JS,但关于 importmap 的信息很少)

GitHub 上的importmap-rails(有关 importmap 的更多信息)