为什么Meteor-Npm一直试图从互联网上获取包裹

时间:2014-08-01 16:28:54

标签: node.js meteor npm

这是我们的应用在启动时的样子:

=> Started proxy.
=> Started MongoDB.     
>>>>> IN ON_TEST
meteor-collection-management: updating npm dependencies -- mongodb...
=> Errors prevented startup:

While building package `meteor-collection-management`:
error: Can't install npm dependencies. Are you connected to the internet?

=> Your application has errors. Waiting for file change.

哎呀。在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']);
});

当我删除Npm位时,我现在可以在没有尝试连接到网络的情况下工作。但这是一个彻底的黑客攻击。

我尽量下载mongodb软件包;我们没有改变版本号的年龄;如果我有互联网连接,该应用程序确实成功启动。

即使您不知道答案,有关如何调试此问题的任何想法吗?

1 个答案:

答案 0 :(得分:0)

您的应用必须继续重新下载Npm模块的原因是您可能拥有多个具有不同Meteor版本的应用。当您使用不同版本的Meteor运行不同的应用程序(甚至同一个应用程序)时,它会清除构建缓存并强制重建Npm模块。

至少这是Npm模块重建的主要原因。如果您有多个应用程序,请确保所有应用程序都使用最新版本(也不是devel中的版本),否则它将继续执行此操作。

其他原因可能是它第一次没有安装,但在这种情况下它会抛出错误。