如何访问包内的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"
希望能帮助到你!