我用的是Windows 10, Node 5.6.0和npm 3.6.0。我试图安装角材料和mdi到我的工作文件夹。NPM安装角材质mdi错误:
+-- angular@1.5.0
+-- UNMET PEER DEPENDENCY angular-animate@^1.5.0
+-- UNMET PEER DEPENDENCY angular-aria@^1.5.0
+-- angular-material@1.0.6
+-- UNMET PEER DEPENDENCY angular-messages@^1.5.0 `-- mdi@1.4.57
npm WARN enoent ENOENT: no such file or directory, open
'C:\Users\xxxxx\Desktop\ngClassifieds\package.json'
npm WARN angular-material@1.0.6 requires a peer of
angular-animate@^1.5.0 but none was installed.
npm WARN angular-material@1.0.6 requires a peer of angular-aria@^1.5.0
but none was installed.
npm WARN angular-material@1.0.6 requires a peer of
angular-messages@^1.5.0 but none was installed.
如何解决这个问题来安装AngularJS材质和MDI ?
给出的答案并不总是有效的。如果这不能解决你的问题。确保在package.json中也使用了正确的符号。这对解决头痛非常重要。例如:
warning " > @angular/compiler-cli@5.2.7" has incorrect peer dependency "typescript@>=2.4.2 <2.7".
warning " > tsickle@0.25.6" has incorrect peer dependency "typescript@>=2.4.2 <2.6".
所以我的typescript需要在2.4.2到2.6之间?
所以我把我的typescript库从使用"typescript": "^2.7"改为使用"typescript": "^2.5"。看起来是正确的吗?
错了。
^意味着你可以接受npm使用"typescript": "2.5"或"2.6"或"2.7"等等…
如果你想知道^和~的意思,看:波浪号(~)和插入号(^)在package.json中的区别是什么?
此外,还必须确保包存在。可能没有“typescript”:“2.5.9”查找包号。为了安全起见,如果你不想读懂它们的意思,可以去掉~或^。
在尝试修复依赖项上的安全漏洞问题时,也可能发生此问题。
以下是我所做的:
审计已安装的依赖项
npm audit
如果有可用的修复程序,运行以下程序将在大多数情况下修复问题:
npm audit fix
有些问题会有SEMVER警告,按照链接会给我们提示如何进行手动检查和/或下一步该做什么。
做了更多的研究后,我发现了这个命令:
npm upgrade
似乎npm审计修复没有考虑更新对等依赖,运行npm升级将修复未满足的对等依赖。
现在检查我们是否通过运行来解决这个问题:
npm list
这将为我们提供项目的所有依赖项,并警告我们任何未满足的peer deps错误。在大多数情况下,升级实际上比停留在你正在使用的包的旧版本要好,如果你没有安全漏洞问题,npm安装也是一个可行的选择。