既然我正在if (id.toString().indexOf(['7','13','15','16'] > -1)) {
}
内定义我的馆藏,我怎样才能让我的包访问它们?
运行/imports
或import collections from '/imports/collections'
会产生require('/imports/collections')
对于包外的文件,不允许声明与Error: Cannot find module '/imports/collections'
的依赖关系。
答案 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对象的模块。