Задать вопрос
@GaserV

Как правильно добавить peerDependencies?

Доброй ночи. Столкнулся с такой проблемой. Есть проект и есть своя либа. Оба юзают react, react-router,react-router-dom. И вот в либе, в проекте отдельно все ок. Но когда компонент из либы, который использует например useNavigate из react-router-dom бьет ошибку "Error: useNavigate() may be used only in the context of a component."

Полагаю что он импортит из своих модулей а не из проекта, из-за чего теряется контекст. Как правильн опроинсталить чтобы завелось? Такая же проблема с useFormContext из react-hook-form и других
  • Вопрос задан
  • 87 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Merion Academy
    Frontend-разработка на React
    4 месяца
    Далее
  • ProductStar
    React: отточите навыки интерфейсной разработки
    6 недель
    Далее
Решения вопроса 1
@karminski
Senior React.JS Developer
Вам нужно исключить зависимость от роутера в вашей либе. Делается это разными способами в зависимости от сборщика. Какой сборщик у вас? Если vite, то в его конфиге нужно правильно настроить параметры build.rollupOptions.external.

По хорошему сам реакт тоже нужно исключить из сборки либы.

PeerDependencies это несколько иное. Этот параметр говорит, что чтобы ваша либо могла быть установлена в другом проекте, в этом проекте должны быть установлены зависимости, перечисленные в peerDeps. И все. Этот параметр никак не влияет на сборку либы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽