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相关问答推荐

使用动态类名的gm_addStyle?

使用jQuery筛选器搜索输入仅适用于单词的一部分

DataTables - this.api 用于回调函数中的多个表

如何使 Bootstrap 轮播滑块使用移动左/右滑动

在文本框中的最后一个字符之后设置焦点

Twitter Bootstrap 是否包含 jQuery?

使用 bootstrap-datepicker 检测对选定日期的更改

ASP.Net 母版页和文件路径问题

页面滚动后,jQuery可拖动在错误的位置显示助手

在不刷新页面的情况下更新网站的 CSS

即使通过Javascript代码判断,如何触发复选框单击事件?

使用 时如何从 select2 中获取选定文本

Jquery 和 HTML FormData 返回未捕获的 TypeError:非法调用

为什么不推荐$().ready(handler)?

隐藏 div 但保留空白

JavaScript:让代码每分钟运行一次

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

如何使用 jQuery 删除 cookie?

Fancybox 不适用于 jQuery v1.9.0 [ f.browser 未定义 / 无法读取属性 'msie' ]

jQuery / Javascript - 如何将像素值 (20px) 转换为数值 (20)