为什么npm install说我有未满足的依赖关系?

我有一个节点包。当我npm install从软件包根目录运行时,它会安装很多东西,但是会打印出几条如下所示的错误消息:

npm WARN未满足依赖项/ Users / seanmackesey / google_drive / code / explore / generator / node_modules / findup-sync / node_modules / glob需要graceful-fs@'~1.2.0'但会加载

我一定对确切的npm install功能感到困惑如果它检测到依赖性,是否应该安装它?在什么情况下会给我这样的错误消息,我该如何解决依赖关系?

Harry路易小卤蛋2020/03/17 18:02:01

就我而言,npm的更新解决了它。

sudo npm install -g npm
StafanL2020/03/17 18:02:01

请注意您的Angular版本,如果您在angular 2.xx下工作,那么也许您需要升级到angular 4.xx

一些依赖需要角度4

这是有关如何安装angular 4或更新项目的教程。

Itachi小宇宙2020/03/17 18:02:01

npm install将安装中的所有软件包npm-shrinkwrap.json,但package.json如果未在中预先设置,则可能会忽略中的软件包

如果您的项目有个npm-shrinkwrap.json,请确保您npm shrinkwrap每次添加添加/删除/更改时都运行以重新生成它package.json

小宇宙GilMandy2020/03/17 18:02:01

我在安装react软件包时遇到了这个问题,这对我有用: npm install --save <package causing this error>

宝儿凯2020/03/17 18:02:01

类似的事情,我会再增加一个步骤。

请注意,在npm版本> 1.4.9上,“ npm install”确实会安装devDependencies。首先尝试删除现有模块和缓存:

remove node_modules $ rm -rf node_modules/
run $ npm cache clean

然后尝试:

npm install --dev
npm update --dev

这至少将解决递归依赖性解析。

NearMandy2020/03/17 18:02:01

我试图在运行的自动部署系统上工作npm install,所以很多这些解决方案在自动化方面对我不起作用。我无法删除/重新创建,node_modules/也无法轻松更改Node.js版本。

因此,我最终运行npm shrinkwrap-将npm-shrinkwrap.json文件添加到我的部署包中,然后从那里运行安装。那为我解决了问题;通过使用rinklewrap文件作为“帮助器”,npm似乎能够找到正确的软件包并为我安装了它们。(Shrinkwrap也具有其他功能,但这是我在特定情况下所需的功能)。

LEY宝儿神奇2020/03/17 18:02:01

我在安装React Native CLI时遇到了类似的问题。/node_modules阅读此处的答案后不确定应该删除哪个目录。我终于跑了

npm update -g

并能够在此之后安装该软件包。

小宇宙神乐Mandy2020/03/17 18:02:01

这为我解决了:

  1. package.json根据错误更正中的版本号
  2. 删除node_modulesrm -rf node_modules);
  3. 重新运行npm install

重复这些步骤,直到没有更多错误为止。

Eva古一2020/03/17 18:02:01

我运行npm list并安装了列为UNMET DEPENDENCY的所有软件包

例如:

├── UNMET DEPENDENCY css-loader@^0.23.1
npm install css-loader@^0.23.1

卡卡西猿2020/03/17 18:02:00

上面的答案即使在删除node_modules目录后也无法完全帮助我

下面的命令终于帮助了我:

npm config set registry http://registry.npmjs.org/

请注意,这会通过不安全的HTTP连接拉动节点模块。

Src:https//stackoverflow.com/a/13119867/4082503

西门樱Eva2020/03/17 18:02:00

对于每个-- UNMET PEER DEPENDENCY,对于前。-- UNMET PEER DEPENDENCY rxjs@5.0.0-rc.2,安装那个依赖,npm install --save rxjs@5.0.0-rc.2直到没有了UNMET DEPENDENCIES

祝好运。

路易Harry2020/03/17 18:02:00

将NPM升级到最新版本可以大大帮助您。dule在上面的回答中可以正确地说,依赖管理有点破损,但是看来这主要是针对npm的较旧版本。

该命令npm list为您提供了所有已安装的列表node_modules当我从1.4.2版本升级到2.7.4版本时,以前标记过的许多模块WARN unmet dependency不再被这样指出。

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

Eva小哥理查德2020/03/17 18:02:00

我通过使用以下命令行解决了该问题

  • $ rm -rf node_modules/
  • $ sudo npm update -g npm
  • $ npm install

完成!

乐猴子樱2020/03/17 18:02:00

在WIFI期间WIFI掉线的时候我发生了npm install删除node_modules并重新运行npm install修复它。