My Meteor项目仅以包装结构(互联网上有几篇文章推荐并解释如何执行此操作)。我遇到了一个我似乎无法解决的基本问题。以下问题被剥离到最小测试用例:
我有两个套餐,一个'一个'和'两个' (使用&meteor创建--package'创建并随后添加到项目中)包2保存变量并导出此变量。包1将此变量的内容记录到控制台:
two.js:
two_var = 'two'
package.js(二):
Package.describe({
name: 'two'
});
Package.onUse(function (api) {
api.addFiles('two.js', 'client');
api.export('two_var', 'client')
});
one.js:
Meteor.startup(function() {
console.log(two_var) //two_var found, unexpected
})
setTimeout(function () {
console.log(two_var) //two_var found, unexpected
}, 3000)
console.log(two_var) //two_var not found, expected
package.js(one):
Package.describe({
name: 'one'
});
Package.onUse(function(api) {
//api.use('two', 'client'); //not using two, but two_var found in certain situations
api.addFiles('one.js', 'client');
});
正如您所看到的,可以在我不希望的情况下访问包二中的变量。我是否忽视了某些事情或者我是否误解了包装的概念?