如何访问包内的meteor包名称?

我正在创build一个包,并且想要在包代码中dynamic地使用这个包的名称(例如,用于login我的/log.js文件)。

如何访问package.js中定义的variables?

Package.describe({ name: "author:packagename" }) 

由于我不能确定包名是否正在改变做分离等,我不想硬编码它们。

谢谢

由于包装系统无法访问这个,所以要做到这一点有点困难。 你可以给这个镜头。

使用api.exports创build一个公共可用的全局对象,例如api.exports("some_global", ["server", "client"]) ;

包中的全局(可以是其他任何东西)。

 some_global = {} 

然后你可以运行这个来find包名(确保它可以访问some_global

 getPackageName = function() { for(var packageName in Package) { if(Package[packageName] && Package[packageName].some_global === some_global) return packageName } } Meteor.startup(function() { console.log(getPackageName()) //=> Should give the package name }); 

这有点乱。 meteor删除了大部分的东西,除了全局的Package对象去除不必要的代码之外,当它以编译的forms进行时,它不会帮助这个。

我用_ (用于下划线包)对此进行了快速testing:

 getPackageName = function() { for(var packageName in Package) { if(Package[packageName] && Package[packageName]._ === _) return packageName } } console.log(getPackageName) // => "underscore" 

希望能帮助到你!