我正在编写一个反应应用程序,它将存在于已包含jquery的网页中。这意味着我需要在开发过程中对jQuery进行全局访问,但不希望将其与构建包绑定(因为jquery已经存在于部署它的页面上)。Webpack使jQuery在开发过程中全局可用
我很难让jQuery作为一个全球(也可以从任何地方通过$
或window.jquery
)访问工作。具体而言,我需要[email protected]。以下是我迄今所做的:
npm install [email protected]
然后,在webpack.dev.config.js:
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery"
})
]
...然而,当我运行我的开发服务器(webpack-dev-server
)和尝试在模块中使用jQuery,我得到:
error '$' is not defined
任何想法?我的主要目标是:
应该是开发版本中出现,但不捆绑生产
应该是通过窗口对象从任何组件全局访问
没有明确地导入到每个模块(假设它是一个全球性的)
你确定你在dev模式下使用'webpack.dev.config.js'吗? –
@MitchKarajohn我。我想知道是否由于我使用的jQuery版本? (1.7.2反对2.x或3.x)。尽管这个版本是req。 – Prefix
嗯,显然[该版本](http://code.jquery.com/jquery-1.7.2.js)暴露'jQuery'对象的默认窗口('/ *公开jQuery的全局对象*/window.jQuery = window。$ = jQuery;')。也许你根本不需要使用'ProvidePlugin',只要确保在代码的其余部分之前加载库。试试这个和发布结果 –