在内部,我们有两个javascript项目,一个库项目和一个应用程序项目。从历史上看,我们没有构建库项目,而只是使用npm link
指向安装它的目录。
我试图看看是否可以将该库发布到某个中心位置(我们有一个内部npm存储库),然后在构建实际应用程序时将其作为节点模块将其拉入。发布步骤工作正常,我可以将我的模块放在那里,然后将其拉入我的本地node_modules。但是,在尝试构建应用程序时,我收到如下错误:
TypeError: 'undefined' is not an object (evaluating 'Backbone.Model')
at /var/folders/ls/0p_x0l3x6kd3cdft_nqg12b80000gp/T/2c192c0e2f7c8d30faaebd14a0439c4d.browserify:44361 <- ../node_modules/applib/base/SomeModel.js:18:0
我们使用commonjs进行依赖管理。我们正在使用Backbone,并且我检查了文件SomeModel
在主干上定义了一个要求,但由于某些原因,当我使用已发布的模块时,它不起作用。我确实看过底层节点模块和骨干网看起来与我见过的大多数其他节点模块有很大不同,但我不确定这是否是一个问题。声明看起来像这样
var Backbone = require('backbone');
var _ = require('underscore');
var SomeModel = Backbone.Model.extend({