【问题标题】:ProvidePlugin not working for jqueryProvidePlugin 不适用于 jquery
【发布时间】:2017-06-09 08:58:39
【问题描述】:

我想将 jquery 全局包含到我的 react 应用程序中。我正在使用很多使用 jquery 的第三方插件。所以我尝试通过 webpack 的 ProvidePlugin 来实现

new webpack.ProvidePlugin({
            React: 'react',
            $: 'jquery',
            jQuery: 'jquery',
            _: 'lodash'
        }),

现在我已经从组件中删除了所有的导入语句。但是 $ 没有映射到 jquery 模块。当我在 $ 上执行 ctrl+click 时,它会将我带到 dom.js。对于 React:'react',它正在工作。

我该如何解决?

这些是我尝试运行项目时的错误

ion.rangeSlider.js:21 Uncaught ReferenceError: jQuery is not defined
    at ion.rangeSlider.js:21
    at ion.rangeSlider.js:23
(anonymous) @ ion.rangeSlider.js:21
(anonymous) @ ion.rangeSlider.js:23
markers.js:450 Uncaught ReferenceError: jQuery is not defined
    at markers.js:450

【问题讨论】:

  • 你安装了jquery by npm i jquery --save 吗?
  • 是的。它存在于 package.json 中。

标签: jquery reactjs webpack webpack-2


【解决方案1】:

这只是在捆绑过程中向每个模块的上下文提供 jQuery 等的一种安全方式但是你必须在代码中的某个地方导入你的 jquery

import 'jquery'

require('jquery')

如果你不这样做,你的模块将无法使用 jQuery

【讨论】:

  • Import 正在创建多个版本冲突。因此,我想要一些全球性的东西。我使用 import $ from 'jquery',但它给了我 $(...).ionRangeSlider 不是一个函数。由于在 ionRangeSlider 脚本之前错误放置 jquery 脚本,这“不是”错误,这是由于 jquery。
  • 你还要考虑到可能有些插件不支持CommonJS
猜你喜欢
  • 2018-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-01
  • 2021-06-22
  • 2011-08-21
  • 1970-01-01
相关资源
最近更新 更多