Подтвердить что ты не робот

При установке пакетов с пряжей, что означает "некорректная равная зависимость"?

Я просто клонирован репо, в котором рекомендуется использовать Yarn для установки зависимостей. Когда я запускаю yarn install, кажется, что все в порядке, но это предупреждение:

yarn install v0.20.3
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning "[email protected]" has incorrect peer dependency "[email protected]^3.4.2".
[4/4] 📃  Building fresh packages...
✨  Done in 77.59s.

Я посмотрел онлайн, чтобы узнать, что именно означает "некорректная равная зависимость". Но все, что я могу найти, - это сообщения о других репозиториях или вопросы о том, как исправить эту проблему.

Может кто-нибудь объяснить, что это значит и почему это только предупреждение, а не ошибка?

Кроме того, это что-то, что я должен попытаться обратиться или сообщить сообществу за репо, которое я только что клонировал?

4b9b3361

Ответ 1

Это только предупреждение, так как на самом деле это не остановит ваш код, он просто там, чтобы дать вам понять, что что-то не так с вашими зависимостями.

Эффективно, равные зависимости - это способ определения пакетов, "чтобы использовать меня, у вас также должна быть установлена ​​x версия пакета y".

Вы должны перейти на последние версии, см. ссылку для получения более подробной информации о зависимостях sass-loader

Ответ 2

Я думаю, что есть пакеты, для которых это не имеет большого значения (если они не раскрыты в вашем приложении или маловероятно, что конфликтующие версии создают проблемы, например moment.js), но есть пакеты, такие как React, для которых это важно что все зависимости React совместимы друг с другом, поскольку они могут создавать компоненты, которые должны понимать друг друга.

Эта статья очень хорошо объясняет, что такое зависимости от сверстников и как их использовать: https://blog.angularindepth.com/npm-peer-dependencies-f843f3ac4e7f

В вашем случае, вероятно, одна из ваших зависимостей использует sass-loader в другой версии, чем вы указали в своем проекте.

Объявив его как peerDependency, вы можете указать npm, какую версию ожидает ваш проект, и он выдаст вам предупреждение (как вы видели), когда возникнет конфликт.