24

我正在尝试在我的 webpacked 应用程序中require使用bootstrap-webpack模块。

它似乎需要 jQuery,因为捆绑的 javascript 然后抛出以下内容:

未捕获的 ReferenceError:未定义 jQuery

如何向 webpack 指定 jQuery 是 bootstrap-webpack 模块的依赖项,以解决此问题?感觉它应该是微不足道的,但我一直在努力弄清楚。

我试过添加:

"jquery": "latest"

到 bootstrap-webpack's 中的依赖项package.json,但这不起作用。文档不完整,我似乎找不到太多关于这个问题的信息。这应该是微不足道的,对吧?帮助!

4

2 回答 2

49

有两种可能的解决方案:

使用 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

于 2014-11-05T19:59:38.790 回答
10

通过这个 github 问题

在需要 webpack-bootstrap 之前 安装expose-loader并添加到主入口点。require('expose?$!expose?jQuery!jquery');

这将在窗口上设置 jQuery,以便任何文件都可以访问它。小心这个方法,所有文件都可以访问那个版本的 jQuery,不管它是否被明确要求。

于 2015-05-21T04:29:20.950 回答