Міграція з npm

Перехід з npm має бути більш-менш простим процесом для більшості людей. Yarn використовує той самий формат package.json як і npm, і може встановити будь-який пакет з npm реєстру.

Якщо ви хочете спробувати Yarn на вашому репозіторію, то просто виконайте:

yarn

Це запомвнить вашу теку node_modules використовуючи алгоритм розв’язання Yarn, який сумісний з алгоритмом розв’язання модулів node.js.

Якщо у вас виникла помилка, то будь ласка перевірте наявні звіти про помилки, або додайте його до Yarn системи звітів про помилки.

Якщо ви запускаєте yarn або yarn add <package>, то Yarn створить yarn.lock файл в кореневій теці вашого проекту. Вам не треба читати чи розуміти цей файл - просто додайте його до системи контролю версій. Коли інші люди почнуть використовувати Yarn замість npm, файл yarn.lock забезпечить для них ті самі залежності як і у вас.

В більшості випадків запуск yarn або yarn add вперший раз просто спрацює. В деяких випадках інформація в файлі package.json не достатньо докладна, щоб позбутися залежностей, і тому детермінований спосіб, який використовує Yarn, вибере залежності, які будуть конфліктувати. Скоріш за все це відбудеться на великих проектах, де іноді npm install не працює і розробники часто видаляють node_modules і перезбирають проект з нуля. Якщо це трапляється, то перед тим як перейти на Yarn, спробуйте використати npm, щоб версії залежностей були більш конкретнішими.

Інші розробники можуть продовжити користуватися npm, тому немає необхідності всім переходити одночасно на Yarn в вашому проекті. Розробники, які користуються yarn, будуть отримувати однакові конфігурації кожен раз, а розробники, які користуються npm, можуть отримувати трошки різні конфігурації, як це передбачено поведінкою npm.

Пізніше, якщо ви зрозумієте, що Yarn не для вас, ви можете просто знову почати користуватися npm без будь-яких змін. Ви можете видалити ваш старий yarn.lock файл, якщо більше ніхто не проекті не використовуватиме Yarn, але це не обов’язково.

Якщо ви зараз користуєтесь файлом npm-shrinkwrap.json, будьте уважні, що ви можете отримати різні наборі залежностей. Yarn не підтримує файли npm shrinkwrap, так як вони не містіть всієї інформації, щоб алгоритм розв’язання Yarn спрацював. Якщо ви користуєтесь shrinkwrap файлом, то краще перейти на Yarn одразу всім розробникам вашого проекту одночасно. Просто видаліть npm-shrinkwrap.json файл і потім додайте до системи контроля версій створений файл yarn.lock.

Порівняння консольних команд

npm (v5) Yarn
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 install --force
npm uninstall [package] yarn remove [package]
npm cache clean yarn cache clean [package]
rm -rf node_modules && npm install yarn upgrade