当前位置: 首页 > 面试题库 >

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

段干跃
2023-03-14
问题内容

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

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

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

window.$;
window.jQuery;

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

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


问题答案:

您需要使用expose-loader.。

npm install expose-loader --save-dev

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

require("expose?$!jquery");

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

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

更新 :从webpack 2开始,您需要使用 expose-loader 而不是 expose

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


 类似资料:
  • 我想将jQuery对象公开给全局窗口对象,该对象可以在浏览器的开发人员控制台中访问。现在,在我的webpack配置中,我有以下几行: 这些行将 jQuery 定义添加到我的 webpack 模块中的每个文件中。但是当我构建项目并尝试在开发人员控制台中访问 jQuery 时,如下所示: 它说这些属性是未定义的… 有没有办法解决这个问题?

  • 我正在尝试将bootstrap-daterangepicker与WebPack一起使用。在我的视图文件中,我有以下内容: 在中:

  • 我正在使用webpack处理和捆绑我的TypeScript模块,但我需要一些模块/块从外部可用。我该怎么做? 其他信息 代码被分成不同的目录,每个页面(/component)一个目录。每个页面都包含几个文件,每个文件都包含一个模块。它看起来像这样: 类型脚本模块的定义如下 我正在使用gulp-webpack来编译和捆绑每个页面的模块: 现在我需要从全局范围访问 以便它可以被其他(外部)组件使用。我

  • 如何用webpack和babel编译我的代码,使导出的函数在全局范围内可用? 比如说: 应该在下可用。 当我刚刚运行时,我得到了我所期望的: 但是webpack的输出如下所示: end<code>测试</code>函数在全局范围内不可用。

  • 问题内容: 我有一个代表IFrame的原型。该原型具有一个名为GoToUrl(…)的函数,可在IFrame中打开给定的url。 我的问题是:如何创建“ InternalDOM”属性并使该属性引用内部IFrame的“窗口”对象(根DOM对象)?通过以下方式:如果我的IFrame公开了一个在其“窗口”对象中包含对象X的页面,我可以这样做: 任何帮助,将不胜感激。 PS:我会接受不一定与jQuery相关

  • 一个基于jquery的window弹出框,支持ie及firefox。 js的弹出框有两个问题是比较麻烦的,就是在iframe里创建弹框,遮罩层要覆盖整个页面。另一个就是弹出框与iframe的方法调用及数据传递。此组件解决了这些问题,有详细例子。 有问题联系QQ:505074122,或发邮件505074122@qq.com