我正在尝试require
我的网络包应用程序中的bootstrap-webpack模块。
它似乎需要jQuery,因为捆绑的javascript会抛出以下内容:
未捕获的ReferenceError:未定义jQuery
如何指定webpack jQuery是bootstrap-webpack模块的依赖项,以解决此问题?感觉它应该是微不足道的,但我一直在努力弄明白。
我尝试添加:
"jquery": "latest"
到bootstrap-webpack的package.json
中的dependecies,但这不起作用。 documentation不完整,我似乎找不到这个问题。这应该是微不足道的吧?救命!
答案 0 :(得分:50)
有两种可能的解决方案:
使用ProvidePlugin :它扫描给定标识符的源代码,并将其替换为对给定模块的引用,就像它已被要求一样。
// webpack.config.js
module.exports = {
...
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
})
]
};
使用imports-loader :它可以预先准备require()
个语句。
// webpack.config.js
{
...
module: {
loaders: [
{ test: require.resolve("jquery"), loader: "imports?jQuery=jquery" }
]
}
}
在这种情况下,您需要先运行npm install imports-loader --save
。
答案 1 :(得分:10)
安装expose-loader
并在需要webpack-bootstrap之前将require('expose?$!expose?jQuery!jquery');
添加到主入口点。
这会在窗口上设置jQuery,所以任何文件都可以获取它。小心这个方法,所有文件都可以访问该版本的jQuery,无论是否明确要求它。