我已经使用流星已有一段时间了,并且遇到了意外的行为,我已经将文件系统设置为:
-workspace
-client
-server
-shared
-shared.js
在shared.js内,我创建了mongo集合:
Collection= new Mongo.Collection('collection');
然后,我可以在应用程序中的任何位置将它们作为全局变量引用。有趣的部分是:我从来没有在项目中使用过“共享”一词,这意味着,我从未导入过此文件,我从未需要过此文件,它是独立加载的,并且无需通知即可工作。
我目前正试图在另一个项目中复制它,但无济于事。谁能解释为什么它在一个项目中而不是另一个项目中加载?以及如何在第二个项目中获得这种行为?
研究完之后,似乎在我的第二个项目中,shared.js根本没有加载。
答案 0 :(得分:2)
我猜您的两个项目不是使用相同的Meteor版本创建的。
自 Meteor 1.7 起,即使在imports/
文件夹之外,新项目也默认启用了惰性加载。
这是由mainModule
文件中的属性package.json
完成的:
"mainModule": {
"client": "client/main.js",
"server": "server/main.js"
},
如果要使用紧急加载(禁用延迟加载),则必须从package.json
中删除mainModule属性。
更多资源在这里: