0

我正在使用 和 构建broweserify一个jquery项目jquery-ui。所有库都用npm. 这是我使用 mybrowserify-shim拉入的方式jquery' and 'jquery-ui

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

一切都像它应该的那样工作,但我看了一下jquery-ui.js,第一行代码是

var jQuery = require('jquery');

这行代码是如何解决的?当我debugger在此之后发表声明时,jquery总是解决。我什至在我的垫片中更改了名称,jquery但它仍然解决了。这是怎么回事?

4

2 回答 2

3

简短的回答:你的package.json依赖

长答案:我也在使用那些 npm 模块。该jquery-ui软件包似乎已require对其内部依赖项进行了重组。正如您所注意到的,第一行jquery-ui core.js是:它查找在项目的 npm 依赖项中var jQuery = require('jquery');调用的模块。jquery这是由我在我的东西处理的package.json

"dependencies": {
    "jquery": "^2.1.1",
    "jquery-ui": "^1.10.5",
}

除了browserify零件:

"browserify": {
    "transform": [ "browserify-shim" ]
},
"browser": {
    "jquery": "./node_modules/jquery/dist/jquery.min.js",
    "jq-ui": "./node_modules/jquery-ui/jquery-ui.js"
},
"browserify-shim": {
    "jquery": "$",
    "jq-ui": {
        "exports": "jq-ui",
        "depends": [ "jquery:jQuery" ]
    },
}

我还没有弄清楚我们是否可以在其他客户端脚本中使用 jQuery UI 组件。

另请参阅:*将 Browserify 与 jquery 和非 npm 插件一起使用 *将 Browserify 与 jQuery 插件一起使用

于 2014-09-18T08:30:03.793 回答
0

如果您使用 npm 安装了 jquery 和 jquery-ui,那么我怀疑它们在您的其余依赖项中的某个位置。在这种情况下,您实际上并没有使用“browser”“jquery”属性,而是让 browserify 使用它是非填充的“require”过程。

“jquery”在您的“依赖项”列表中吗?如果您完全删除“浏览器”“jquery”行会发生什么?

于 2014-07-18T22:17:39.670 回答