javascript - Browserify 与 jQuery 插件

标签 javascript jquery browserify

我正在尝试让一些 jQuery 插件与 browserify 一起工作。我的 package.json 设置如下:

  "browser": {
    "jquery": "./client/js/vendors/jquery-2.2.2.min.js",
    "jquery-validation": "./client/js/vendors/jquery.validate.js"
  },
  "browserify-shim": {
    "jquery": "global:$"
  },

但是,当我 require('jquery-validation') 时,我得到 cannot read property fn of undefined 因为它与这个插件相关。我也在尝试拥有它,这样 $ 将是全局的,因为它在所有地方都被使用,而不必要求它。

我看过很多不同的文章和配置,但似乎没有任何效果。

如有任何建议或澄清,我们将不胜感激。

编辑:

我有时也会得到 Uncaught Error: Cannot find module 'jquery'

最佳答案

  1. 你不需要 shim jquery,它与 node yoo 兼容可以简单地使用 npm install jquery --save 安装它并制作 var $= require("jquery") 在你的代码中。
  2. 你确实需要 shim jquery.validate。

package.json:

{  
   "browser":{  
      "jquery-validation":"./node_modules/jquery-validation/dist/jquery.validate.js"
   },
   "browserify-shim":{  
      "jquery-validation":{  
         "depends":[  
            "jquery:jQuery"
         ]
      }
   },
   "browserify":{  
      "transform":[  
         "browserify-shim"
      ]
   },
   "dependencies":{  
      "jquery":"^2.0.0",
      "jquery-validation":"^1.15.1"
   }
}

注意:jquery.validate 依赖于 jQuery 2.0 版本^(你可以在 jquery-validation 的 npm 包的 package.json 文件中看到)所以你必须在你的项目中设置对 jquery ^2.0 的依赖,否则 jquery-validation 将加载他自己的 jQuery 版本,集成将不起作用。

关于javascript - Browserify 与 jQuery 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36094203/

相关文章:

javascript - textarea.val() 值改变但不显示在页面上

javascript - NestJS:使用 JWT 向 AuthGuard 添加验证选项

javascript - 在父元素之后稍微淡化子元素

javascript - 使用 ES6 导入时“未定义 jQuery”

browserify - browserify 可以解析方法中的 require 调用吗

javascript - Facebook:如何为我博客的每个帖子生成 Facebook 评论代码

javascript - 使用 jQuery 将外部 URL 加载到 div

c# - 带有 jQ​​uery Ajax 调用的 MVC 不能正确绑定(bind)空数组/可枚举

javascript - 使用Browserify导入平滑滚动

javascript - 如何通过jQuery上传图片?