我想将jQuery对象公开给全局窗口对象,该对象可以在浏览器的开发人员控制台中访问。现在,在我的webpack配置中,我有以下几行:
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
})
]
这些行将 jQuery 定义添加到我的 webpack 模块中的每个文件中。但是当我构建项目并尝试在开发人员控制台中访问 jQuery 时,如下所示:
window.$;
window.jQuery;
它说这些属性是未定义的…
有没有办法解决这个问题?
看起来窗口
对象在所有模块中都公开。
为什么不直接导入/要求<code>JQuery</code>并放入:
window.$ = window.JQuery = JQuery;
您需要确保在需要/导入任何使用window.JQuery
的模块之前发生这种情况,无论是在需要模块中还是在使用它的模块中。
一个典型的例子是jQuery插件。他们中的大多数只是期望jQuery
是全局定义的。使用Pro视频插件
,您可以确保jQuery是一个依赖项(例如之前加载的),并且在他们的代码中出现的jQuery
将被替换为webpad原始等效的要求('jQuery')
。
如果你有外部脚本依赖于全局命名空间中的符号(比如说外部托管的JS,Selenium中的Javascript调用或只是在浏览器控制台中访问符号),你想改用暴露加载器
。
简而言之:ProVidePlugin管理对全局符号的构建时依赖关系,而exex-loader
管理对全局符号的运行时依赖关系。
您需要使用公开加载器。
npm install expose-loader --save-dev
您可以在需要时这样做:
require("expose?$!jquery");
或者您可以在您的配置中这样做:
loaders: [
{ test: require.resolve('jquery'), loader: 'expose?jQuery!expose?$' }
]
更新:从webpack 2开始,您需要使用expose加载程序而不是expose:
module: {
rules: [{
test: require.resolve('jquery'),
use: [{
loader: 'expose-loader',
options: '$'
}]
}]
}
问题内容: 我不会将jQuery对象公开给浏览器中开发人员控制台内部可访问的全局窗口对象。现在在我的webpack配置中,有以下几行: 这些行将jQuery定义添加到我的webpack模块中的每个文件中。但是,当我构建项目并尝试在开发者控制台中访问jQuery时,如下所示: 它说这些属性是不确定的… 有没有办法来解决这个问题? 问题答案: 您需要使用expose-loader.。 您可以在需要时执
我正在尝试将bootstrap-daterangepicker与WebPack一起使用。在我的视图文件中,我有以下内容: 在中:
问题内容: 如何使用jQuery访问父窗口对象? 这是我的父窗口变量,我想在关闭子窗口后设置其值。 问题答案:
本文向大家介绍C#实现关闭子窗口而不释放子窗口对象的方法,包括了C#实现关闭子窗口而不释放子窗口对象的方法的使用技巧和注意事项,需要的朋友参考一下 在线扫描相机的调试过程中,需要开辟调试界面来进行位置的配置。调试结束后,一种常用的方式是将调试参数保存并在下次启动时加载。另一种简单方式是直接使用该参数运行程序。因此,在后一种情况下,需要实现的功能是:即使关闭调试窗口,其窗口对象也不释放。除非其主窗口
我使用webpack构建React组件。下面是JSX文件: 然后,我想在html中调用函数我有WebPack的配置文件: 但是我不能用HTML呈现我的组件: 我得到错误:
我有以下工作(运行)代码,但我得到TypeScript错误属性'onSubmit'不存在于类型'Window 在我的 global.d.ts 文件中,我尝试导出要导入的接口 并声明全局 两个解决方案都不成功,错误仍然存在。如何将属性添加到窗口对象以供TypeScript识别?