使用Webpack将jQuery公开到真实的Window对象

Ferbolg:

我不会将jQuery对象公开给浏览器中开发人员控制台内部可访问的全局窗口对象。现在在我的webpack配置中,有以下几行:

plugins: [
                new webpack.ProvidePlugin({
                    $: 'jquery',
                    jQuery: 'jquery'
                })
            ]

这些行将jQuery定义添加到我的webpack模块中的每个文件中。但是,当我构建项目并尝试在开发者控制台中访问jQuery时,如下所示:

window.$;
window.jQuery;

它说这些属性是不确定的...

有没有办法解决这个问题?

马特·德里克(Matt Derrick):

您需要使用暴露加载器

npm install expose-loader --save-dev

您可以在需要时执行以下操作:

require("expose?$!jquery");

或者您可以在配置中执行以下操作:

loaders: [
    { test: require.resolve('jquery'), loader: 'expose?jQuery!expose?$' }
]

更新:从webpack 2开始,您需要使用暴露加载器而不是暴露

module: {
    rules: [{
        test: require.resolve('jquery'),
        use: [{
            loader: 'expose-loader',
            options: '$'
        }]
    }]
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章