的WebPack让jQuery的开发过程中全局可用

T_Conroy

我正在写一个反应应用程序,将里面住的是已经包含了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

有任何想法吗?我的主要目标是:

  1. 应该是开发版本中出现,但不捆绑生产

  2. 应该可以通过该窗口对象从任何组件全局访问

  3. 不必显式地导入每个模块(假定它是全局模块)

季米特里斯·KARAGIANNIS

在花了一些时间之后,这是我的观察结果:

  • 安装时[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'

这样,该文件将被执行,jquerywindow按照原先的意图被注册到,并且您可以$在其余的代码中使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章