为browserify填充jQuery节点

时间:2016-04-19 03:44:30

标签: jquery node.js browserify-shim

我有一个文件需要从NPM安装的模块:

-- login.js --
require('jquery-form');

该模块依赖于window范围内存在的jQuery变量,但是当我浏览它时,我知道我需要对它进行填充。因此我安装了browserify-shim并且正在使用它(来自package.json):

"browserify-shim": {
  "./node_modules/jquery/dist/jquery.js": "jQuery"
}, 

但是,jquery-form运行时,jQuery未定义。我错过了什么?

2 个答案:

答案 0 :(得分:1)

你需要“shim”jQuery作为jquery-form的依赖。 如果这些都是通过npm安装的,则不需要browser指令。因为jquery-formmain中没有package.json指令您需要添加browser指令以显示Browserify要包含在哪个文件中。

"browserify-shim": {
  "jquery-form": {
    "depends": ["jquery"]
},
"browserify": {
  "transform": [ "browserify-shim" ]
},
"browser": {
  "jquery-form": "./node_modules/jquery-form/jquery.form.js"
},

请参阅文档的this section

答案 1 :(得分:0)

尝试:

{
  "browser": {
    "jquery": "./node_modules/jquery/dist/jquery.js"
  },
  "browserify-shim": {
    "jquery": "$"
  }
}

当您需要时:

var $ = require('jquery');