Еще один вопрос "неудовлетворенной зависимости от сверстников" - PullRequest
0 голосов
/ 25 февраля 2019

Я до сих пор не понимаю этого, несмотря на то, что прочитал много ТАК вопросов и документов.Так что, если это действительно дурак, пожалуйста, не стесняйтесь указывать мне куда-нибудь, что это объяснит.

После добавления firebase в мой проект Vue.js с использованием пряжи я получаю много:

warning "firebase > @firebase/database@0.3.12" has unmet peer dependency "@firebase/app-types@0.x".
warning "firebase > @firebase/firestore@1.0.4" has unmet peer dependency "@firebase/app-types@0.x".
warning "firebase > @firebase/functions@0.3.7" has unmet peer dependency "@firebase/app-types@0.x".
warning "firebase > @firebase/messaging@0.3.11" has unmet peer dependency "@firebase/app-types@0.x".
warning "firebase > @firebase/storage@0.2.8" has unmet peer dependency "@firebase/app-types@0.x".
warning "firebase > @firebase/auth > @firebase/auth-types@0.5.2" has unmet peer dependency "@firebase/app-types@0.x".

У меня уже установлена ​​@ firebase / app-types @ 0.3.4 в качестве зависимости (приведена в моем файле yarn.lock, но не в package.json).Я могу устранить эти ошибки вручную, выполнив yarn add @firebase/app-types, но не понимаю, зачем мне это нужно - я никогда не вызываю ничего из @ firebase / app-types прямо в моем приложении.Если FireBase зависит от него, и он уже установлен, почему я получаю эту ошибку?Думаю, я не совсем понимаю, что на самом деле означает неудовлетворенная «зависимость от сверстников».Неужели это действительно проблема в самом firebase (@ 5.8.4)?

Я прочитал https://yarnpkg.com/lang/en/docs/dependency-types/,, который говорит: «Зависимости между равноправными узлами - это особый тип зависимости, который может возникнуть только в том случае, еслиВы публиковали свой собственный пакет. "но ясно, что это подходит для меня, несмотря на то, что я не публикую свой собственный пакет - я работаю над приложением.Буду признателен за любую информацию по этой теме!

1 Ответ

0 голосов
/ 25 февраля 2019

«Зависимость от однорангового узла» лучше всего понимать как мягкую зависимость между плагином и программным обеспечением, к которому он добавляет функциональность.

Если каждый плагин определяет жесткую зависимость от основного программного обеспечения, то вамбыть в аду управления версиями (хуже, чем сейчас).

«Зависимость от пира» позволяет плагину firebase (например) подсказать, с какой версией firebase он работает, путем присвоения имени равноправной зависимости.

Они так называемые, потому что ни одна из сторон не является "владельцем" отношений, это симбиоз, пакет с дополнительными функциями работает только с ограниченным диапазоном версий пакета "хост".

Я могу разрешить эти ошибки вручную, добавив yarn add @ firebase / app-types, но не понимаю, зачем мне это нужно - я никогда ничего не вызываю из @ firebase / app-типы непосредственно в моем приложении.

Поскольку «зависимость от сверстников» - это подсказка, ничто не установит эти зависимости для вас, они больше похожи на предложения.К сожалению, вы должны знать, нужна ли вам эта вещь или нет, и имеет ли это предупреждение смысл.

Возможно, вы являетесь жертвой этой ошибки https://github.com/yarnpkg/yarn/issues/4850, которая ссылается на проблему с app-types требуется пакет также в пакетах, отличных от TypeScript.

Вы не включили языковой тег в свое сообщение, поэтому невозможно узнать, используете ли вы JavaScript или TypeScript, ноесли вы используете TypeScript, вам, вероятно, следует добавить этот пакет в качестве зависимости для разработки.

В этом смысл зависимости от равноправного узла, инструментарий не может точно знать, нужна ли вам эта вещь, и не удовлетворяет все ваши зависимости необязательно(равноправные) зависимости могут что-то нарушать, поэтому [warning].

Вы можете прочитать https://github.com/firebase/firebase-js-sdk/issues/1207#issuecomment-424804228 и заметить, что черно-белого ответа на этот вопрос нет, он кажется очень субъективным.

...