我正在创建一个包,并希望在包代码中动态使用包的名称(即用于登录我的 /log.js 文件)。
如何访问定义的变量包.js?
Package.describe({
name: "author:packagename"
})
由于我无法确定包名称是否正在更改为分离等,因此我不想对它们进行硬编码。
Thanks
做到这一点有点困难,因为包装系统不允许访问它。不过你可以尝试一下。
使用创建一个公开可用的全局对象api.exports
, e.g api.exports("some_global", ["server", "client"])
;
包中的全局变量(可以是其他任何东西)。
some_global = {}
然后你可以运行它来查找包名称(确保它有权访问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
对象删除不必要的代码。
我对此进行了快速测试_
(用于下划线包):
getPackageName = function() {
for(var packageName in Package) {
if(Package[packageName] && Package[packageName]._ === _) return packageName
}
}
console.log(getPackageName) // => "underscore"
希望能帮助到你!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)