我正在写一个反应应用程序,将里面住的是已经包含了jQuery的一个网页。这意味着我需要在开发过程中jQuery的全球访问,但不希望与构建(因为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
有任何想法吗?我的主要目标是:
应该是开发版本中出现,但不捆绑生产
应该可以通过该窗口对象从任何组件全局访问
不必显式地导入每个模块(假定它是全局模块)
在花了一些时间之后,这是我的观察结果:
安装时[email protected]
,抛出以下警告:npm WARN deprecated [email protected]: Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers. Please upgrade to >=1.11.0.
。
尝试jquery
完全使用此版本的构建捆绑包失败。我不知道你是怎么做到的,但对我来说却失败了。我在用[email protected]
我使用来检查了jquery
下载的源代码npm install [email protected]
。它肯定是从修改后的原始来源。原始源代码仍然存在,尽管在jquery/tmp/jquery.js
结论
这个你最好的赌注工作是这样,在你的代码的其余部分之前的一些观点:
import 'jquery/tmp/jquery'
。
这样,该文件将被执行,jquery
并window
按照原先的意图被注册到,并且您可以$
在其余的代码中使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句