Javascript Browserify垫片依赖项未定义?

Javascript Browserify垫片依赖项未定义?,javascript,browserify,Javascript,Browserify,我正在尝试将现有的应用程序分解为模块。我选择使用Browserify来实现这一点,因为它的语法很好地模仿了NodeJS所需要的 我的项目依赖于几个外部模块,其中一个是主干。因此,我使用browserify shim。然而,我遇到了一个问题 在my package.json中,我定义了以下内容: ``` ``` 在我的一个文件中,我需要这样的主干: var Backbone = require('Backbone'); 在编译我的包时,Browserify不会抱怨,所以一切看起来都很好。但是,当

我正在尝试将现有的应用程序分解为模块。我选择使用Browserify来实现这一点,因为它的语法很好地模仿了NodeJS所需要的

我的项目依赖于几个外部模块,其中一个是主干。因此,我使用browserify shim。然而,我遇到了一个问题

在my package.json中,我定义了以下内容:

```

```

在我的一个文件中,我需要这样的主干:

var Backbone = require('Backbone');
在编译我的包时,Browserify不会抱怨,所以一切看起来都很好。但是,当在浏览器中加载应用程序时,我收到错误
无法读取未定义的
的属性“Model”(我正在调用
Backbone.Model.extend()
),这对我来说没有多大意义

当我将
“导出”:“全局:主干网”
更改为
“导出”:“主干网”时,
Browserify停止并显示消息

Error: module "Backbone" not found

我不明白我做错了什么,我觉得Browserify shim文档在这里帮不了什么忙。他们给出了一个很好的例子,但并没有真正解释发生了什么或者什么会导致这样的错误。有人能告诉我吗?

我相信你正在使用Browserify shim 3.0,因为你的package.json中有配置(如果我错了,请纠正我)。基于3.0的文档,似乎向shim表明您已经从包外包含了库;在本例中,CDN中包含三个.js

尝试删除全局:使其显示为:

"Backbone": {
  "exports": "Backbone",
  "depends": [
    "jQuery",
    "lodash"
  ]
},
或者干脆放弃整个出口部分。脊梁骨的另一个挑战是确保你有合适的脊梁骨

我自己也一直在玩这个,我同意医生是。。。充其量也令人困惑。在我的例子中,我只是用--save来安装主干和jQuery,并要求这两个都不带垫片(我的插件等和jQuery现在都加垫片了,但主干本身没有)

希望这有帮助

"Backbone": {
  "exports": "Backbone",
  "depends": [
    "jQuery",
    "lodash"
  ]
},