node.js - 为什么 Meteor-Npm 不断尝试从互联网获取包

标签 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 包的下载是最好的;我们已经很久没有更改版本号了;如果我有互联网连接,应用程序就会成功启动。

即使您不知道答案,对于如何调试这个问题有什么想法吗?

最佳答案

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

至少这是重建 Npm 模块的主要原因。如果您有多个应用程序,请确保所有应用程序都使用最新版本(也不是来自开发的版本),否则它将继续这样做。

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

关于node.js - 为什么 Meteor-Npm 不断尝试从互联网获取包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25084726/

相关文章:

node.js - 更改安装目录,npm 和 package.json

node.js - 将参数传递给组合的 npm 脚本

node.js - npm install -> 无法建立隧道套接字

javascript - NodeJS - socket.on 似乎没有被调用

javascript - 如何从给定上下文数据对象的 meteor 模板生成 HTML 输出(版本 0.8+)

mongodb - 设计 MongoDB 集合与关系方法

node.js - 将 semver 版本与波浪号/插入符进行比较

javascript - 从哪里获得单个 lodash 包的@types?

node.js - 将 Web 部署到 AWS Elastic Beanstalk 后,Sequelize 不起作用

javascript - 铁路由器 meteor 的路径