Yarn — один из основных менеджеров пакетов JavaScript , [3] [4], разработанный в 2016 году Себастьяном Маккензи из Meta (ранее Facebook) для среды выполнения JavaScript Node.js. Yarn, альтернатива менеджеру пакетов npm , был создан в результате сотрудничества Facebook (теперь Meta ), Exponent (теперь Expo.dev), Google и Tilde (компании, стоящей за Ember.js ) для решения проблем согласованности, безопасности и производительности с большими кодовыми базами. [5]
Yarn 1.0 мог принудительно переопределять версию транзитивных зависимостей . [6] [7]
Пользователи могут писать собственные плагины для Yarn.
Ограничения Yarn позволяют пользователям применять правила для своих зависимостей или полей манифеста в рабочих областях с ограниченной областью действия.
Загруженные пакеты кэшируются и хранятся как один файл.
Plug'n'Play позволяет пользователям запускать проекты Node без node_modules
папки, определяя способ или место для разрешения зависимостей файлов пакетов с помощью файла Plug-n-Play-control. Эта функция направлена на исправление плохо структурированной node_modules
архитектуры и приводит к более быстрому времени запуска приложения Node.js.
Плагины могут добавлять новые резолверы, сборщики, компоновщики, команды, а также могут регистрироваться на некоторые события или интегрироваться друг с другом. Большинство функций Yarn реализованы с помощью плагинов, включая yarn add
и yarn install
, которые также являются предустановленными плагинами.
Пользователи могут определить, какой протокол будет использоваться для разрешения определенных пакетов, например, протокол git используется для загрузки публичного пакета из репозитория Git, а протокол patch используется для создания исправленной копии исходного пакета.
Рабочий процесс выпуска автоматически обновляет соответствующие пакеты среди рабочих пространств монорепозиториев при обновлении корневых пакетов.
Рабочие пространства позволяют нескольким проектам работать вместе в одном репозитории и автоматически применять изменения к другим родственным проектам при изменении исходного кода, что позволяет устанавливать несколько пакетов за один проход, выполнив команду установки только один раз.
Zero-Installs решает проблему установки пакетов, когда пакеты необходимо установить, когда коды только что загружены на локальный компьютер.
Чтобы установить пряжу:
npm install -g пряжа
Чтобы установить пакет с пряжей: [10]
пряжа добавить имя пакета
Чтобы установить пакет с пряжей для целей разработки и тестирования:
пряжа добавить имя-пакета --dev
Примечание: в первых версиях это было:
yarn install имя-пакета --save-dev