NPM:确认此情况的NPM安装的行为?为什么没有嵌套依赖性



在应用程序中,安装NPM软件包时遇到了一些问题。

package.json如下:

"dependencies": {
    "@angular/cdk": "7.2.1",
    "privateLib": "19.0.0",
}

我只显示关键部分并隐藏其他东西。privateLib是一个私人软件包,您可以忽略名称。

npm install之后,它报告以下warn消息:

npm WARN privateLib@19.0.0 requires a peer of @angular/cdk@7.3.7 but none is installed. You must install peer dependencies yourself.

我检查了已安装的@angular/cdk是版本7.2.1

令人困惑的点是,在privateLib内部,其自己的package.json配置是这样的:

"dependencies": {
    "@angular/cdk": "7.3.7",
}

我检查了privateLib中没有@angular/cdk软件包。那么,为什么它不在nested way中安装自己的7.3.7版本的依赖性。此行为与NPM3文档不同:https://npm.github.io/how-npm-works-docs/npm3/how-npm3-works.html
我正在使用NPM V6。

的确,每https://blog.npmjs.org/post/110924823920/npm-weekly-5:

我们还将在NPM 3中更改同伴依赖性的行为。我们将不再自动下载同行依赖。相反,如果尚未安装同伴依赖性,我们会警告您。这需要您手动解决同行依赖性冲突,但从长远来看,这应该使您最终在包裹的依赖项上陷入困境的可能性较小。

尝试https://github.com/spatie/npm-inpm-install-peers以促进。

最新更新