首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否未定义Browserify-shim依赖项?

是否未定义Browserify-shim依赖项?
EN

Stack Overflow用户
提问于 2014-04-17 02:15:03
回答 1查看 2.7K关注 0票数 3

我正在尝试将现有的应用程序拆分成模块。我选择使用Browserify,因为它的语法很好地模拟了NodeJS的需求。

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

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

代码语言:javascript
复制
```javascript

"browserify":{

代码语言:javascript
复制
"transform": [
代码语言:javascript
复制
  "browserify-shim"
代码语言:javascript
复制
]

},

“浏览器”:{

代码语言:javascript
复制
"jQuery": "public/js/vendor/jquery-2.0.3.min.js",
代码语言:javascript
复制
"lodash": "public/js/vendor/lodash.js",
代码语言:javascript
复制
"Backbone": "public/js/vendor/backbone-1.1.2.js"

},

"browserify-shim":{

代码语言:javascript
复制
"jQuery": "global:$",
代码语言:javascript
复制
"lodash": "_",
代码语言:javascript
复制
"Backbone": {
代码语言:javascript
复制
  "exports": "global:Backbone",
代码语言:javascript
复制
  "depends": [
代码语言:javascript
复制
    "jQuery",
代码语言:javascript
复制
    "lodash"
代码语言:javascript
复制
  ]
代码语言:javascript
复制
},
代码语言:javascript
复制
"BackboneLocalStorage": {
代码语言:javascript
复制
  "depends": [
代码语言:javascript
复制
    "Backbone"
代码语言:javascript
复制
  ]
代码语言:javascript
复制
}

},

代码语言:javascript
复制

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

代码语言:javascript
复制
var Backbone = require('Backbone');

在编译我的包时,Browserify没有抱怨,所以一切看起来都很好。但是,当在浏览器中加载我的应用程序时,我收到错误Cannot read property 'Model' of undefined (我在那里调用Backbone.Model.extend() ),这对我来说没有多大意义。

当我将"exports": "global:Backbone",更改为"exports": "Backbone",时,Browserify停止并显示以下消息

代码语言:javascript
复制
Error: module "Backbone" not found

我不知道我做错了什么,我觉得Browserify-shim文档在这里没有多大帮助。他们给出了一个很好的例子,但并没有真正解释发生了什么,或者是什么导致了这样的错误。有谁能开导我吗?

EN

回答 1

Stack Overflow用户

发布于 2014-05-13 21:06:56

我相信你使用的是Browserify-Shim3.0,因为你的package.json中有配置(如果我说错了,请纠正我)。根据3.0的文档,exposing a global config似乎向填充程序表明,您已经从捆绑包外部包含库;在本例中,three.js是从CDN包含的。

尝试删除全局:因此它是这样的:

代码语言:javascript
复制
"Backbone": {
  "exports": "Backbone",
  "depends": [
    "jQuery",
    "lodash"
  ]
},

或者可能放弃整个出口部分。Backbone的另一个挑战是确保您拥有正确的exposed Backbone's $ property

我自己也在玩这个,我同意这些文件...充其量也就是让人困惑。在我的例子中,我简单地使用--save和jQuery来安装Backbone和jQuery,但没有填充程序(我的插件etc和plugins现在是填充的,但不是Backbone本身)。

希望这能有所帮助!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23117086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档