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

Sta*_*ale 8 node.js npm brunch

我有一个项目的问题,我们正在使用节点和早午餐.问题是特定于早午餐的当前问题,但任何模块都可能出现这种情况.

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

npm init
npm install --save-dev brunch
Run Code Online (Sandbox Code Playgroud)

这里的问题是早午餐依赖于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,或者忽略依赖?

has*_*sin 4

不确定 npm 2,但您可以使用 beta npm 3 修复此问题。npm 3 有扁平的 node_modules 目录。因此子模块可以位于顶层。阅读变更日志

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

安装 npm 3:

npm install -g npm@3-latest 
Run Code Online (Sandbox Code Playgroud)

然后安装依赖项:

//install missing module from other location
npm install  https://github.com/loopj/commonjs-ansi-color.git --save-dev
npm install --save-dev brunch
Run Code Online (Sandbox Code Playgroud)