我有一个节点包。当我从包的根目录运行npm install时,它安装了一堆东西,但随后打印了一些错误消息,看起来像这样:

npm WARN unmet dependency /Users/seanmackesey/google_drive/code/explore/generator/node_modules/findup-sync/node_modules/glob需要grace -fs@'~1.2.0'但会加载

我一定很困惑npm install到底做了什么。如果它检测到依赖项,难道不应该安装它吗?在什么情况下它会给我这样的错误消息,我如何解决依赖关系?


当前回答

我通过使用这些命令行解决了这个问题

$ rm -rf node_modules/ $ sudo NPM update -g NPM $ NPM install

这是完成了!

其他回答

如果你在angular 2.x下工作,请注意你的angular版本。所以你可能需要升级到angular 4.x.x

有些依赖需要angular 4

下面是一个关于如何安装angular 4或更新你的项目的教程。

在安装npm时,我的WIFI出现了问题。删除node_modules并重新运行npm install修复了它。

我通过使用这些命令行解决了这个问题

$ rm -rf node_modules/ $ sudo NPM update -g NPM $ NPM install

这是完成了!

将NPM升级到最新版本可以极大地帮助解决这一问题。Dule上面的回答是对的,依赖管理有点坏,但似乎这主要是针对旧版本的npm。

命令npm list提供了所有已安装的node_module的列表。当我从版本1.4.2升级到版本2.7.4时,许多以前标记为WARN未满足依赖关系的模块不再这样标记。

要更新npm,你应该在MacOSX或Linux上输入npm install -g npm。在Windows上,我发现重新下载并重新运行nodejs安装程序是更新npm的更有效的方法。

这为我解决了问题:

更正包中的版本号。Json,根据错误; 删除node_modules (rm -rf node_modules); 重新运行npm install。

重复这些步骤,直到不再出现错误。