Пакетный менеджер Yarn — инструкция по применению

Привет!) Сегодня мы рассмотрим пакетный менеджер Yarn. Немного истории. Появился Yarn как разработка от Facebook. И при появлении он был призван заменить пакетный менеджер npm. Так как yarn был в несколько раз быстрее при установке пакетов. На сегодняшний день, после выхода 5-й версии npm, npm значительно ускорился, и теперь по скорости он весьма сопоставим с yarn. Хотя, yarn все же быстрее, но это не критично.
Yarn работает с теми же пакетами что и npm. И решает те же задачи, что и npm. Только делает это несколько быстрее. На 30% — 50% , если сравнивать yarn и npm после 5-й версии.
Yan работает с тем же файлом package.json, и устанавливает пакеты в директорию node_modules. То есть это полный, заменимый аналог npm.
Видео обзор работы с пакетным менеджером Yarn
Как установить Yarn
Для установки пакетного менеджера yarn я предлагаю вам два способа.
Первый. На мой взгляд более быстрый и удобный. Если вы уже используете npm, то вы можете быстро установить yarn как обычная глобальная установка пакета от npm:
npm i yarn -g
Второй. Установить через дистрибутив с официального сайта, по ссылке: https://yarnpkg.com/en/docs/install
Проверка установки yarn
После того как yarn установлен, проверьте. Для этого в консоли наберите:
yarn -v
В ответ увидите, версию yarn. В моем случае ответ был 1.7.0
Начало работы с Yarn
Инициализация нового проекта происходит командой:
yarn init
Чтобы быстро создать файл, и автоматом ответить на все вопросы yes
,
можно запустить команду с флагом -y
yarn init -y
После этого, в корне проекта будет создан файл package.json. Он будет самую малось отличаться, от того если бы вы создали его с помощью npm. Но это абсолютно не критично. Так как yarn и npm полностью взаимозаменяемы.
Установка пакетов из package.json
Если вы работаете с уже готовым проектом, и требуется установить все зависимости из файла packege.json используйте команду:
yarn
Или yarn install
.
Файл yarn.lock
После инициализации, или установки пакетов с yarn вы увидите новый файл yarn.lock
. Не надо его удалять. Это технический файл yarn. Просто храните его в проекте и добавьте его в версионный контроль (Git например). В него записываются версии всех пакетов и зависимостей, которые у вас установлены. Для того чтобы ваших коллег, кто будет работать с этим же проектом, установились те же версии пакетов — основных и зависимостей. В npm аналогом ему является файл package-lock.json .
У новичков возникает вопрос: «Надо ли загружать в Git репозиторий файл yarn.lock
или package-lock.json
?» Ответ: Надо!
Основные команды для работы с Yarn
Старт нового проекта
yarn init
Установка пакета
yarn add [package] // установит пакет и запишет его в зависимости Dependencies yarn add [package]@[version] // установит пакет определенной версии yarn add [package]@[tag] // установит пакет определенной версии
Установка пакета с записью в другие категории зависимостей
Можно установить пакет в devDependencies
, peerDependencies
, and optionalDependencies
:
yarn add [package] --dev yarn add [package] --peer yarn add [package] --optional
Обновление зависимости
yarn upgrade [package] yarn upgrade [package]@[version] yarn upgrade [package]@[tag]
Удаление зависимости
yarn remove [package]
Установить все зависимости проекта
yarn
или
yarn install
Оффлайн установка пакетов в Yarn
Если вы попытаетесь установить пакет с отключенным интернетом, то yarn выдаст ошибку и предложит воспользоваться флагом —offline.
Этот флаг позволяет устанавливать пакеты, которые уже устанавливались ранее и сохранились в кэше. Для примера, установим jquery:
yarn add jquery --offline
Сравнение (аналоги) команд в NPM и Yarn
npm (v5) | Yarn |
---|---|
npm init | yarn init |
npm init --yes | yarn init -y |
npm install | yarn install |
(нет аналога) | yarn install --flat |
(нет аналога) | yarn install --har |
npm install --no-package-lock | yarn install --no-lockfile |
(нет аналога) | yarn install --pure-lockfile |
npm install [package] | yarn add [package] |
npm install [package] --save-dev | yarn add [package] --dev |
(нет аналога) | yarn add [package] --peer |
npm install [package] --save-optional | yarn add [package] --optional |
npm install [package] --save-exact | yarn add [package] --exact |
(нет аналога) | yarn add [package] --tilde |
npm install [package] --global | yarn global add [package] |
npm update --global | yarn global upgrade |
npm rebuild | yarn add --force |
npm uninstall [package] | yarn remove [package] |
npm cache clean | yarn cache clean [package] |
rm -rf node_modules && npm install | yarn upgrade |
npm version major | yarn version --major |
npm version minor | yarn version --minor |
npm version patch | yarn version --patch |
Ссылки по теме: