有没有办法定义一个仅在包中使用的变量,而不将其导出到客户端或服务器?例如,
//In /packages/fooPackage/foo.js
packageScopedValue = 'foo';
//In /packages/fooPackage/package.js
api.export('packageScopedValue', 'package');
//In /packages/fooPackage/other.js
doStuffWith(packageScopedValue);
不污染任何其他范围?
答案 0 :(得分:1)
包范围的var是您不导出的任何全局变量。如果我在foo = "RAAARR"
中var
(否pack.js
)和console.log(foo)
中pack2.js
说{},则会看到RAAARR
。这是因为meteor基本上按照你给它的顺序连接每个js文件& 然后将其包装在IFFE中。
请注意,加载顺序很重要!!
api.addFiles(['pack.js', 'pack2.js'], 'client'); //works
api.addFiles(['pack2.js', 'pack.js'], 'client'); //undefined