【发布时间】:2019-03-08 20:03:28
【问题描述】:
我试图在我的 webpack 应用程序的条目 index.js 文件中使用 jQuery 作为 $,并且在浏览器中运行我的应用程序时收到此错误:
未捕获的类型错误:无法读取未定义的属性“fn”
这是由于我正在导入的模块中有一行名为 bootstrap-switch,而有问题的行是:
$.fn.bootstrapSwitch = function() {
所以我没有 $ 作为全局变量。我按照ProvidePlugin docs 上的说明进行操作,如下所示。我也尝试了this question 中提供的答案,但没有奏效。
这是我的webpack.config.js 文件的缩略版:
module.exports = {
entry: {
main: './src/index.js'
},
plugins: {
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
})
}
}
这是我的src/index.js 文件:
import 'bootstrap-switch';
console.log('I am running');
任何帮助将不胜感激。
编辑
此问题的先前版本询问了实际上是 ESLint 错误的构建错误。感谢@UjinT34 帮助我解决了这个问题并专注于上面列出的实际错误。
【问题讨论】:
-
我有一个类似的问题,一个遗留的 jQuery 插件想要使用来自
window的 jQuery——它想要window.jQuery,但你的可能在window.$之后。 stackoverflow.com/a/48690626/5796134 -
啊啊啊,我们去!是的,这就是问题所在!非常偷偷摸摸的插件。它使用自执行函数进行初始化,并传递给自己
window.jQuery。从链接的问题的答案中添加配置解决了这个问题。如果您想在答案中链接到它,我会接受。
标签: javascript jquery webpack webpack-provide-plugin