npm: подтвердить поведение npm install для этого случая? Почему нет вложенной зависимости? - PullRequest
0 голосов
/ 26 июня 2019

В приложении я сталкиваюсь с некоторыми проблемами при установке пакетов 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",
}

Я проверил, нет ли @angular/cdk упаковки внутри privateLib. Так почему он не устанавливает собственную зависимость версии 7.3.7 в nested way. Это не то же самое, что документ npm3: https://npm.github.io/how-npm-works-docs/npm3/how-npm3-works.html
Я использую npm v6.

1 Ответ

1 голос
/ 26 июня 2019

Действительно, за https://blog.npmjs.org/post/110924823920/npm-weekly-5:

Мы также будем изменять поведение peerDependencies в npm @ 3.Мы больше не будем автоматически загружать зависимость от сверстников.Вместо этого мы предупредим вас, если зависимость от пира еще не установлена.Это требует от вас разрешения конфликтов peerDependency вручную, но в долгосрочной перспективе это снизит вероятность того, что вы окажетесь в затруднительном положении с зависимостями ваших пакетов.

Попробуйте https://github.com/spatie/npm-install-peers для облегчения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...