Javascript 什么';使用其他脚本文件Meteor中的脚本文件的正确方法是什么?

Javascript 什么';使用其他脚本文件Meteor中的脚本文件的正确方法是什么?,javascript,include,meteor,Javascript,Include,Meteor,根据和Meteor文档,Meteor将自动以最深的优先顺序递归地将所有脚本包含在包文件夹结构中。但是,当我在MyProject/sever文件夹中的脚本中定义js类时,如果从顶级.js文件引用,则该类是未定义的。如果我将类定义移动到If(Meteor.isServer)上方的顶级.js文件中,则类的定义是正确的。在构建或包含外部文件中的javascript时,我遗漏了什么 编辑: 这个问题比仅仅看到我的js类更重要。我无法调用函数或在meteor 0.6创建的私有命名空间中看到任何内容。显然,必

根据和Meteor文档,Meteor将自动以最深的优先顺序递归地将所有脚本包含在包文件夹结构中。但是,当我在MyProject/sever文件夹中的脚本中定义js类时,如果从顶级.js文件引用,则该类是未定义的。如果我将类定义移动到
If(Meteor.isServer)
上方的顶级.js文件中,则类的定义是正确的。在构建或包含外部文件中的javascript时,我遗漏了什么

编辑:
这个问题比仅仅看到我的js类更重要。我无法调用函数或在meteor 0.6创建的私有命名空间中看到任何内容。显然,必须有某种方法来引用在另一个文件中定义的内容,否则meteor中就不可能有大型项目。

正如我所怀疑的,这与我对javascript(goofy hack)类声明和全局声明的误解有关。更改:

function ClassFoo(){
   this.bar = function(){}
}


通过将ClassFoo设置为全局来修复它。FWIW,请注意,
var ClassFoo=…
将不起作用,因为它将成为自动生成的闭包名称空间的本地名称空间。一定很喜欢javascript的怪癖。

这似乎是meteor 0.6对js文件范围的一个问题。显然,这并不总是我们想要的。在客户机上,使用client/compatibility文件夹可以做到这一点,但在服务器上则不行。对于这种情况,是否有任何已知的解决方法或最佳做法?是否在浏览器或服务器上未定义。。如果您在服务器目录中有一个文件,则该文件将仅加载到服务器上。如果随后在服务器和客户端上加载的顶级js文件中引用它,那么它将在客户端上未定义,因为/server中的文件仅在服务器上运行。它在服务器上未定义,并且在If(Meteor.isServer){}块内被引用。
ClassFoo = function ClassFoo(){
   this.bar = function(){}
}