我在我的项目中使用了LaravelMix,并且使用了引导4.1.1。使用以下代码加载库:
引导程序.js
(最初由Laravel项目生成,用于加载库)
//...
try {
window.$ = window.jQuery = require('jquery/dist/jquery.min');
require('bootstrap');
} catch (e) {
console.log(e);
}
//...
所以我试着触发一个模态,发现:
VM3990:1 Uncaught TypeError: $(...).modal is not a function
. 我查过了
window.$.fn
我找不到任何引导程序定义的函数。
$$$1
(对jquery的本地引用)包含所有方法。请参见下图:
我怀疑引导程序自己加载了一个单独的jquery实例,我发现这是真的。jquery的那个实例加载了
isGlobal == false
所以它没有暴露在
window
作为
$
/
jQuery
。当我删除了加载jquery的行时,引导程序仍然被加载,如果下拉列表不是由我的代码触发的,那么它们仍然可以被使用。
图像中的箭头指向文件中的jquery部分。
我不太了解Webpack,但以前有人遇到过这个问题吗?我刚刚开始学习如何使用它和模块,所以我可能在做一些我不应该做的事情。