如何将我的Meteor app文件导入我的包中?

时间:2016-04-05 12:32:17

标签: meteor ecmascript-6

既然我正在if (id.toString().indexOf(['7','13','15','16'] > -1)) { } 内定义我的馆藏,我怎样才能让我的包访问它们?

  • 运行/importsimport collections from '/imports/collections'会产生require('/imports/collections')

  • 对于包外的文件,不允许声明与Error: Cannot find module '/imports/collections'的依赖关系。

1 个答案:

答案 0 :(得分:0)

包在编译时定义,apps集合在运行时定义。您无法在编译时访问运行时数据。

您需要使用集合列表调用包的构造函数。

// packages/myFixturesPackage/startup.js

import collections from '/imports/collections/index.js';

Meteor.startup(

Package['myFixturesPackage'].collections = require('/imports/collections/index.js');

fixtures.populate(Package['myFixturesPackage'].collections); );

index.js导出一个集合数组,其中包含在主应用程序中定义的所有colllections(这是程序包的运行时间),然后将其传递给公开fixtures对象的模块。