Выбор ответа Middle Пакеты и зависимости обновлено

Куда положить react в библиотеке

Вопрос

Ты публикуешь библиотеку React-компонентов. Как правильно объявить react?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: В peerDependencies, чтобы у приложения была одна копия React. Если библиотека потащит свой React в dependencies, в приложении может оказаться две копии, и хуки сломаются с ошибкой про невалидный вызов хука. peerDependencies говорит: используй React хозяина нужной версии. - dependencies как раз грозит…

Варианты ответа

  1. В peerDependencies, чтобы у приложения была одна копия Reactправильный ответ
  2. В dependencies, чтобы библиотека работала сама по себе
  3. Не объявлять вовсе, react и так будет у приложения
  4. В devDependencies, тогда он попадёт в бандл библиотеки

Разбор

Если библиотека потащит свой React в dependencies, в приложении может оказаться две копии, и хуки сломаются с ошибкой про невалидный вызов хука. peerDependencies говорит: используй React хозяина нужной версии.

  • dependencies как раз грозит дублированием.
  • Без объявления пакетный менеджер не проверит совместимость версий, а строгие менеджеры вроде pnpm не дадут импортировать необъявленное.
  • devDependencies не ставятся потребителям библиотеки и не делают пакет частью бандла.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.