我有一个节点包。当我从包的根目录运行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到底做了什么。如果它检测到依赖项,难道不应该安装它吗?在什么情况下它会给我这样的错误消息,我如何解决依赖关系?


当前回答

更新至4.0.0

更新到4和将Angular依赖项更新到最新版本一样简单,并仔细检查是否需要动画。这将适用于大多数用例。

在Linux / Mac:

npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest typescript@latest --save 

在Windows上:

npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest typescript@latest --save

然后运行你通常使用的ng serve或npm start命令,一切都应该正常工作。

如果你依赖于Animations,在你的根模块中从@angular/platform-browser/ Animations导入新的BrowserAnimationsModule。如果没有这一点,您的代码将编译和运行,但动画将触发一个错误。@angular/core中的导入已弃用,请使用新包中的导入

import { trigger, state, style, transition, animate } from '@angular/animations';.

其他回答

对于每个——UNMET PEER DEPENDENCY,例如——UNMET PEER DEPENDENCY rxjs@5.0.0-rc.2,使用npm install——save rxjs@5.0.0-rc.2安装该依赖项,直到不再有更多的UNMET依赖项。

祝你好运。

这为我解决了问题:

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

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

类似的事情,我想再加一步。

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

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

然后尝试:

npm install --dev
npm update --dev

这至少可以解决递归依赖项解析。

——dev递归地安装devDependencies(并且它会永远运行..) 它如何帮助解决版本差异?

你可以尝试删除node_modules文件夹,然后清理npm缓存,然后再次运行'npm i'

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

有些依赖需要angular 4

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