这是我们的应用在启动时的样子:
=> Started proxy.
=> Started MongoDB.
>>>>> IN ON_TEST
meteor-collection-management: updating npm dependencies -- mongodb...
哎呀。在meteor-collection-management / package.js(我们自己的包)中,有这样的:
Package.on_test(function(api) {
console.log(">>>>> IN ON_TEST");
Npm.depends({
mongodb: "1.4.1"
});
api.use(['meteor-collection-management', 'tinytest', 'test-helpers']);
api.add_files('tests/dbobject-test.js', ['client', 'server']);
api.add_files('tests/enums-test.js', ['client', 'server']);
});
为什么Package.on_test会运行?即使在节点调试模式下,我也没有在测试模式下运行。
答案 0 :(得分:1)
on测试函数只是运行以构建依赖关系图,即使它实际上没有使用。我看到你也开了一个问题。这里有更多关于它的作用的信息:https://github.com/meteor/meteor/blob/a40a6273953c0e18eddcd67919754814461c5dd4/tools/packages.js#L1434
因此它构建了.test,并且需要运行该方法来获取所需的文件。 Meteor需要知道在项目运行之前它需要什么,这可能就是为什么两者都运行的原因。 (包需要构建到单个文件中,与Meteor的其余部分略有不同)