@siwewa

Как импортировать зависимость из другой зависимости?

В чем суть - я установил определенный npm пакет #1, он внутри себя содержит другую зависимость #2, которую я также импортирую обычным образом (как если бы я ее установил напрямую).
В целом, все работает, но eslint выдает ошибку:
import/no-extraneous-dependencies: Forbid the use of extraneous packages

Он просит, чтобы зависимость #2 была установлена в основном проекте в `dependencies` или `devDependencies`. Вопрос: зачем? Во-первых, это неудобно, зачем 2 раза устанавливать один и тот же пакет. Во-вторых, если зависимость #2 внутри #1 обновится, мне также придется ее обновлять во избежание конфликтов версий.
Как решить эту проблему и стоит ли заморачиваться?
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
@its2easyy
Во-первых, это неудобно, зачем 2 раза устанавливать один и тот же пакет.

Если npm может выбрать версию которая одновременно подойдёт и для проекта и для пакета, то зависимость будет установлена только один раз.
если зависимость #2 внутри #1 обновится, мне также придется ее обновлять во избежание конфликтов версий

в проекте ^2.3.4, в зависимости стало ^2.4.0, npm установит 2.4.0 потому что она подходит под оба условия, в проекте версию можно не трогать. Обновлять нужно будет только мажорные версии потому что они предполагают breaking changes.
Вопрос: зачем?

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

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

Войти через центр авторизации
Похожие вопросы