陨石本地包,无法设置全局命名空间?

时间:2013-09-06 01:27:20

标签: meteor meteorite

我目前的项目是https://github.com/jimmack1963/localPackages.git

我正在尝试使用此代码:

console.log("You pressed the button, " + MyName);

其中MyName来自一个名为simple的包,即JUST LOCAL。每6.5,我通过

出口
Package.on_use(function (api, where) {
    api.add_files(['constant.js'], 'client');
  //below added per possible suggestion from Nathan, had no effect.
    api.use('constant.js', 'client');

    if (api.export)
        api.export('MyName');
});

我试图将我的代码考虑到本地软件包。这不是关于发布包,而是关于使用本地的包,这在很多地方都有提到。我的包只是试图发布一个字符串MyName。但该项目不需要它。 “MyName未定义。”

我在“发现流星”中复制了这项技术,但它对我不起作用,我尝试其他的东西。在Meteor中取得了很大的成功。

这个规范似乎正在发生变化。我得到6.5导出要求,但很容易找到关于基础项目需要在smart.json中添加该项目的矛盾建议(不是包中的那个)。大多数参考文献都没有将其列为要求。

我试过

{
  "packages": {
      "simple" : {
          "path": "packages/simple"
      }
  }
}

并将其放入git并尝试从另一个项目:

{
  "packages": {
 "simple" : {
          "git": "https://github.com/jimmack1963/localPackages.git"
      }     

    }
}

对于后者,令人愉快的是,安装程序非常聪明,可以挖掘并提取包本身,忽略了将它包装在git项目中的项目。太好了!因此,当我直接从git安装软件包时,我仍遇到同样的问题,但仍未发布到全世界。

  • Ubuntu 13.04
  • 陨石版本0.6.11
  • Meteor Release 0.6.5.1

1 个答案:

答案 0 :(得分:2)

迁移到0.6.5后我遇到了同样的问题 -

您只能从明确“使用”的软件包中获取“导出”变量;软件包通过调用.use内的Package.on_use来“使用”其他软件包,项目“使用”软件包将其添加到.meteor/packages

此外,对导出变量似乎非常挑剔,并且目前不会导出以this.

开头的变量