meteor0.8.x命名空间

背景信息

我目睹了Meteor将每个文件封装成一个匿名函数来防止填充全局名称空间。

假设我有一个类似的文件结构:

  • 客户/
    • 的index.html
    • style.css文件
    • client.js
    • 助手/
      • somehelper.js
  • 服务器/
    • server.js
  • 楷模/

我的问题

  1. 我如何使用文件client.jssomehelper.js中的对象?

  2. 我如何创build我自己的命名空间? 例如: clientclient.helpersmodelsserver

你是对的! 每个文件都有自己的本地名称空间。 要定义一个全局variables,你需要删除最前面的variables。 防止污染全局命名空间的常见做法是让一个全局对象(例如App )来托pipe所有全局范围的符号。 该对象可以在顶层lib文件夹中定义,以克服一些文件加载​​顺序相关的问题。

如果由于某种原因,你的代码依赖于文件加载顺序,你可以在Meteor.startup例程中包装它的一些部分,以防止未定义的types错误。

另一个可能的解决scheme – 如果像这样的模块和类似的东西 – 将使用一些像AMD这样的AMD stream行的模拟工具。