npm安装失败,因为注册表中缺少包

时间:2015-08-05 07:48:16

标签: node.js npm brunch

我对使用节点和早午餐的项目存在问题。问题是当前特定于早午餐的问题,但任何模块都可能出现这个问题。

目前重现此方法的最简单方法是在新文件夹中执行以下操作:

npm init
npm install --save-dev brunch

这里的问题是早午餐取决于loggy,而log依赖于ansi-color,它在npmregistry中不再有条目:

https://registry.npmjs.org/ansi-color

我认为这可能是github项目:https://github.com/loopj/commonjs-ansi-color

在任何情况下,我都无法继续,我们的所有构建都会失败,因为它们无法获取给定的依赖项。

我可能会以某种方式使用npm shrinkwrap,但这取决于node_modules中已存在的模块,我目前缺少这些模块。

那么如何强制npm从其他位置使用ansi-color,或忽略依赖?

2 个答案:

答案 0 :(得分:4)

不确定npm 2,但你可以用beta npm 3解决这个问题.npm 3有flat node_modules目录。所以子模块可以位于顶层。阅读Changelog

缺少的模块可以直接从他们的Github仓库安装,作为项目中的顶层依赖项。如果npm在node_modules目录中找到具有相同版本的模块,它将不再在注册表中查找它。

安装npm 3:

npm install -g npm@3-latest 

然后安装依赖项:

//install missing module from other location
npm install  https://github.com/loopj/commonjs-ansi-color.git --save-dev
npm install --save-dev brunch

答案 1 :(得分:-1)

似乎ansi-color回到了npm注册表(" https://registry.npmjs.org/ansi-color"重新上线)