#angular #angular-material #angular-animations
Вопрос:
Я понял, что использую только @angular/animations
в одном месте в своем проекте, поэтому я заменил его чисто css-решением и удалил его из своего проекта вместе с BrowserAnimationsModule
.
Я получил эту ошибку:
An unhandled exception occurred: The target entry-point "@angular/material/dialog" has missing dependencies:
- @angular/animations
У меня сложилось впечатление, что если бы библиотека, которую я использовал, имела зависимость, это обрабатывалось бы в их файле package.json, и что мне не нужно добавлять все зависимости зависимостей в мой проект.
Есть идеи, чего мне здесь не хватает?
Ответ №1:
Вы все делаете правильно.
Дело в том, что некоторые пакеты не хотят переносить свои зависимости в ваш проект, потому что, скорее всего, они у вас уже будут. Таким образом, они объявляют их таковыми peer dependency
и полагаются на вас.
Вы можете найти некоторые объяснения в официальной документации npm относительно зависимости от одноранговых узлов.
К сожалению, это означает, что вы не сможете избавиться от них, если только вы не используете код, требующий такой зависимости.
Комментарии:
1. Спасибо за это, хотя я немного смущен — как вы говорите, скорее всего, это будет в моем проекте, ну а что, если нет? Должна ли она просто сломаться или не должна ли она вернуться к установке в качестве зависимости от этой библиотеки?
2. @BenTaliadoros Когда вы устанавливаете что-то, что требует одноранговой зависимости, npm автоматически проверит, существует ли это. Если да — он будет устанавливаться в автоматическом режиме, если НЕТ — вы должны увидеть предупреждение в консоли:
this project requires ....
я никогда не видел никакого предупреждения в случае удаления одноранговой зависимости позже.3. Но, пожалуйста, не доверяйте мне, просто попробуйте установить зависимости еще раз с помощью удаленной @angular/анимации. Вы должны увидеть предупреждение.