流星圆形进口

Meteor circular imports

我有两个文件试图从彼此导入对象。如果我然后尝试访问未定义的对象之一。

文件1 ------------------ 从 'file2'

导入 { ob1 }

const 测试 = obj1.foo;

export const obj2 = {bar: 123};

文件2 ------------------ 从 'file1'

导入 { ob2 }

const test2 = obj2.bar;

export const obj1 = {foo: 123};

那是因为export const obj2 = {bar: 123};不是声明而是命令。它需要 运行 才能使 obj2file1 的导出对象中可用。

您的代码与此类似:

var file1 = {};
var file2 = {};

const test = file2.obj1.foo;  // file2 doesn't have an obj1 field yet!
file1.obj2 = {bar: 123};

const test2 = file1.obj2.bar;
file2.obj1 = {foo: 123};

考虑将所有访问导入对象(例如集合)的代码放入 Meteor.startup 回调中。 https://docs.meteor.com/api/core.html#Meteor-startup