Javascript 包作用域变量

Javascript 包作用域变量,javascript,meteor,Javascript,Meteor,有没有办法定义一个只在包中使用的变量,而不将其导出到客户端或服务器?比如说, //In /packages/fooPackage/foo.js packageScopedValue = 'foo'; //In /packages/fooPackage/package.js api.export('packageScopedValue', 'package'); //In /packages/fooPackage/other.js doStuffWith(packageScopedValue)

有没有办法定义一个只在包中使用的变量,而不将其导出到客户端或服务器?比如说,

//In /packages/fooPackage/foo.js
packageScopedValue = 'foo';

//In /packages/fooPackage/package.js
api.export('packageScopedValue', 'package');

//In /packages/fooPackage/other.js
doStuffWith(packageScopedValue);

在不污染任何其他作用域的情况下?

包作用域的var是您不导出的任何全局变量。如果我在
pack.js
中说
foo=“RAAARR”
(no
var
),在
pack2.js
中说
console.log(foo)
,你会看到
RAAARR
出现。这是因为meteor基本上是按照您给定的顺序连接每个js文件,然后将其封装在IFFE中

请注意,加载顺序并不重要

api.addFiles(['pack.js', 'pack2.js'], 'client'); //works
api.addFiles(['pack2.js', 'pack.js'], 'client'); //undefined