例如,当我安装Angular2时:
npm install --save angular2
temp@1.0.0 /Users/doug/Projects/dougludlow/temp
??? angular2@2.0.0-beta.3
??? UNMET PEER DEPENDENCY es6-promise@^3.0.2
??? UNMET PEER DEPENDENCY es6-shim@^0.33.3
??? UNMET PEER DEPENDENCY reflect-metadata@0.1.2
??? UNMET PEER DEPENDENCY rxjs@5.0.0-beta.0
??? UNMET PEER DEPENDENCY zone.js@0.5.11
npm WARN angular2@2.0.0-beta.3 requires a peer of es6-promise@^3.0.2 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of es6-shim@^0.33.3 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of reflect-metadata@0.1.2 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of rxjs@5.0.0-beta.0 but none …Run Code Online (Sandbox Code Playgroud) 我在关于npm peerDependencies警告的stackoverflow上看到了类似的问题-但没有一个问题解决了实际安装依赖项的最佳实践。即,我们现在应该将它们与我们的dependencies和一起保存devDependencies吗?如果是这样,peerDependenciesin 的目的是package.json什么?
安装了其他一些npm软件包后,我收到了一系列警告:
npm WARN slate-prop-types@0.4.32 requires a peer of slate@>=0.32.0 but none is installed. You must install peer dependencies yourself.
Run Code Online (Sandbox Code Playgroud)
因此,我要做的是在中设置一个peerDependencies对象package.json,并包含其要求的内容:
...
"peerDependencies": {
"slate": "0.32.0"
},
...
Run Code Online (Sandbox Code Playgroud)
重新运行npm i,但警告仍然存在。
仅当我将peerDependency包含在devDependencies或依赖项中时,警告才消失,我并不想这样做,因为它使我的项目直接依赖的包变得混乱。
解决这个问题的正确方法是什么?