javascript — почему пряжа предупреждает при добавлении зависимости в корневые рабочие пространства package.json

Подробнее о рабочих местах пряжи

Yarn Workspaces — это функция, облегчающая управление зависимостями проектов, которые связаны друг с другом. Например, когда ваши проекты имеют схожие зависимости, вы можете объявить каждый проект как рабочее пространство. Это предотвращает много дублирования. Еще один важный пример использования — это monorepos :

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

Несколько проектов, используемых каждый день разработчиками JavaScript, управляются как монорепозиции: Babel, React, Jest, Vue, Angular.

Использование рабочих областей Yarn дает следующие преимущества:

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

  • Это также лучший механизм, чем yarn link поскольку он влияет только на дерево рабочей области, а не на всю систему.

  • Все зависимости вашего проекта будут установлены вместе, что даст Yarn больше свободы для их оптимизации.

  • В каждом проекте Yarn будет использовать один файл блокировки, а не другой, что означает меньшее количество конфликтов и более легкие проверки.

Почему пряжа предупреждает?

Если вы добавите общие корни проектов в корень рабочей области, он не появится в package.json проектов. Поэтому, если вы отделите проект, он не будет иметь все свои зависимости в своем собственном package.

json, поэтому запуск yarn install node_modules для отдельного проекта приводит к тому, что не все зависимости node_modules в его собственных node_modules . Очевидно, что отдельный проект не может работать, и вам нужно исправить проблему отсутствующих зависимостей, чтобы решить проблему.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector