Meteor 如何在多个智能包中扩展命名空间

Meteor 如何在多个智能包中扩展命名空间,meteor,Meteor,我需要创建由多个meteor smart软件包组成并共享同一名称空间的功能或模块。问题是,如果i api.export所有package.js文件中的名称空间,则链接器会创建如下结果: /*导入*/ var Meteor=Package.Meteor.Meteor; var MyModule=Package['MyModule-base'].MyModule; /*包范围变量*/ var-MyModule; 因此,它覆盖了MyModule变量,这使得旧的作用域在其他模块包中不可用。如果我只在一

我需要创建由多个meteor smart软件包组成并共享同一名称空间的功能或模块。问题是,如果i api.export所有package.js文件中的名称空间,则链接器会创建如下结果:

/*导入*/
var Meteor=Package.Meteor.Meteor;
var MyModule=Package['MyModule-base'].MyModule;
/*包范围变量*/
var-MyModule;
因此,它覆盖了MyModule变量,这使得旧的作用域在其他模块包中不可用。如果我只在一个包中导出变量,那么很好,但只要我尝试将该变量的赋值包含到代码中,如下所示:

(函数(MyModule){
MyModule.SomeFeature=。。。
})(MyModule | |(MyModule={}));
然后同样的问题再次出现,链接器声明变量两次,导致导入的变量无效

为什么这可能是故意的,或者是一个bug?或者我应该如何解决这种情况

目前,我已经修改了meteor代码,如果已经声明为导入变量,则不声明包范围变量。

可能相关: