出口名称在Meteor中发生冲突会发生什么?

时间:2015-06-05 17:47:12

标签: javascript node.js meteor package

我在Meteor中读过,

  

如果您的应用使用电子邮件包(并且仅在其使用电子邮件时)   包!)然后你的应用程序可以看到电子邮件,你可以调用Email.send。   大多数软件包只有一个导出,但有些软件包可能有两个   或者三个(例如,提供几个类的包   共同努力)。

那么如果您的应用使用两个导出名为Email的变量的包,会发生什么?您的应用会收到哪个电子邮件? Package.a.Email / Package.b.Email是唯一的解决方法吗?

1 个答案:

答案 0 :(得分:1)

这就是meteor的命名空间系统的用武之地。只有两个包中的一个,通常是最后添加的一个包,将获得全局Email变量。

唯一的解决方法是使用Package.a,如您所述。

如果某个软件包依赖于另一个软件包,如果api.use("xxx")

中的package.js正确引用了相关软件包,则不应该出现问题

如果您使用两个包含导出作为包的依赖关系,则必须使用Package.xx命名约定(注意Meteor实际上使用了它,如果您不这样做,它实际上会转换您的代码。使用Package.xx

使用全局变量Email,您必须小心,因为只有一个包将获得全局变量。