关于在Rails7(7.0.2.3)中安装jQuery的问题,我查找了尽可能多的帮助。我想在视图中的脚本标签中使用它,但是我似乎无法将它导出到全局可用的任何地方。
当然,importmaps很容易操作,可以安装和映射包。不过,在此之后整个文档就变得支离破碎,一种普遍的雾气笼罩着这种新的使用JS包的方式。看看周围,有很多混淆。
话虽如此,我该如何添加这个或类似的内容:
import jquery from "jquery"
window.jQuery = jquery;
window.$ = jquery;
将全局函数放到application.js或其他地方,以使它们能够工作,例如$. 我希望$在所有视图中都可用。
至于我所做的:
./bin/importmap pin jquery --download
请给我提供 importmap 的代码行:
pin "jquery" # @3.6.0
好的。现在看一下importmap JSON:
{
"imports": {
"application": "/assets/application-37a24e4747cc3cde854cbbd628efbdf8f909f7b031a9ec5d22c5052b06207eb8.js",
"@hotwired/turbo-rails": "/assets/turbo.min-96cbf52c71021ba210235aaeec4720012d2c1df7d2dab3770cfa49eea3bb09da.js",
"@hotwired/stimulus": "/assets/stimulus.min-900648768bd96f3faeba359cf33c1bd01ca424ca4d2d05f36a5d8345112ae93c.js",
"@hotwired/stimulus-loading": "/assets/stimulus-loading-1fc59770fb1654500044afd3f5f6d7d00800e5be36746d55b94a2963a7a228aa.js",
"jquery": "/assets/jquery-498b35766beec7b412bab57a5acbe41761daa65aa7090857db4e973fa88a5623.js",
"controllers/application": "/assets/controllers/application-368d98631bccbf2349e0d4f8269afb3fe9625118341966de054759d96ea86c7e.js",
"controllers/hello_controller": "/assets/controllers/hello_controller-549135e8e7c683a538c3d6d517339ba470fcfb79d62f738a0a089ba41851a554.js",
"controllers": "/assets/controllers/index-7a8fc081f7e391bd7b6fba95a75e36f88ba813da2c4c8787adad248afb9a0a06.js"
}
}
听起来似乎已经在这里了。然后在application.html.erb文件中插入一个简单的脚本标签:
<script type="text/javascript" charset="utf-8">
$(document).ready(function (){
console.log('jQuery working.');
})
</script>
失败。检查员说:
(index):41 Uncaught ReferenceError: $ is not defined
这似乎非常基础,没有一些最常用的库(如 jQuery 和 Bootstrap)在 importmaps 中的文档,真是非常令人恼火。
这是第1天的内容,但是这些东西的文档非常稀少。看起来应该有一些协调的努力来解释一下从 webpack 转变过来的变化,而 webpack 本身也是另一个灾难。
如果您知道答案,请发布它,以使每个人受益。
谢谢。
script
标签吗? - mechnicov