1

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

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

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

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

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

4

2 回答 2

1

您需要将“Shim”jQuery 作为jquery-form. 如果这些都是通过 npm 安装的,则不需要该browser指令。因为jquery-form其中没有main指令,所以package.json您需要添加browser指令以向 Browserify 显示要包含在您的包中的文件。

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

请参阅文档的这一部分

于 2016-04-19T13:50:50.150 回答
0

尝试:

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

当您需要时:

var $ = require('jquery');
于 2016-04-19T03:49:34.130 回答