I want to expose the jQuery object to the global window object that is accessible inside the developer console in the browser. Now in my webpack config I have following lines:

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

这些行将jQuery定义添加到我的webpack模块中的每个文件中.

window.$;
window.jQuery;

上面说这些属性是未定义的...

有办法解决这个问题吗?

推荐答案

你需要使用expose-loader.

npm install expose-loader --save-dev

You can either do this when you require it:

require("expose?$!jquery");

or you can do this in your config:

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

UPDATE: As of webpack 2, you need to use expose-loader instead of expose:

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

Jquery相关问答推荐

收到错误“由于表单未连接而取消表单提交”

如何通过javascript数组中的键和值查找对象的索引

使用 chart.js v2 删除图表上的图例

如何将文本从 div 复制到剪贴板

Rails 5:如何将 $(document).ready() 与 turbo-links 一起使用

N 次(声明式语法)

data.map 不是函数

catch forEach 最后一次迭代

用于活动选项卡更改的 Bootstrap 3 jquery 事件

Jquery Ajax,从 mvc.net 控制器返回成功/错误

删除索引后的所有项目

将返回的 JSON 对象属性转换为(较低的第一个)camelCase

在大写字母前插入空格

如何在 JavaScript 或 jQuery 中过滤 JSON 数据?

在 jQuery 中构建 html 元素的最清晰方法

$(this) 和 event.target 之间的区别?

如何获取 jQuery 下拉值 onchange 事件

jquery更改div类的样式属性

测试两个元素是否相同

如何在javascript中获取json键和值?