1. Миграция с npm
Миграция с npm должна быть довольно простой для большинства пользователей. Yarn может использовать тот же формат, что и npm, и может устанавливать любые пакеты с реестра npm.
Если вы хотите попробовать Yarn в своем существующем проекте npm, просто попробуйте выполнить:
yarn
Это позволит создать вашу папку node_modules с помощью алгоритма разрешения Yarn, совместимого с алгоритмом разрешения модулей node.js алгоритмом разрешения модулей node.js.
Если у вас возникла ошибка, пожалуйста, проверьте наличие существующей проблемы или отправьте отчет в трекер проблем Yarn.
При выполнении yarn или yarn add <package>, Yarn сгенерирует файл yarn.lock в корневой директории вашего пакета. Вам не нужно читать или понимать этот файл — просто внесите его в систему управления версиями. Когда другие люди начнут использовать Yarn вместо npm, файл yarn.lock гарантирует, что они получат точно такие же зависимости, что и у вас.
В большинстве случаев выполнение yarn или yarn add в первый раз будет работать. В некоторых случаях информация в файле package.json недостаточно ясна для устранения зависимостей, и детерминированный способ выбора зависимостей Yarn может столкнуться с конфликтами зависимостей. Это особенно вероятно в крупных проектах, где иногда npm install не работает, и разработчики часто удаляют node_modules и строят заново. Если это произойдет, попробуйте использовать npm, чтобы сделать версии зависимостей более явными, прежде чем переходить на Yarn.
Начиная с Yarn 1.7.0, вы можете импортировать состояние вашего package-lock.json, сгенерированное npm в Yarn, используя yarn import.
Другие разработчики в проекте могут продолжать использовать npm, поэтому вам не нужно заставлять всех в проекте конвертироваться одновременно. Разработчики, использующие yarn , все получат точно такой же конфигурацию, а разработчики, использующие npm , могут получить немного разные конфигурации, что является предполагаемым поведением npm.
Позже, если вы решите, что Yarn вам не подходит, вы можете вернуться к использованию npm без каких-либо конкретных изменений. Вы можете удалить старый файл yarn.lock , если больше никто в проекте не использует Yarn, но это не обязательно.
Если вы сейчас используете файл npm-shrinkwrap.json , имейте в виду, что у вас может получиться другой набор зависимостей. Yarn не поддерживает файлы npm shrinkwrap, поскольку в них недостаточно информации для работы детерминированного алгоритма Yarn. Если вы используете файл shrinkwrap, может быть проще перевести всех работающих над проектом на использование Yarn одновременно. Просто удалите существующий файл npm-shrinkwrap.json и внесите в систему управления версиями только что созданный файл yarn.lock.
Сравнение команд CLI
| npm (v5) | Yarn |
|---|---|
npm install | yarn add |
| (Нет) | yarn add --flat |
| (Нет) | yarn add --har |
npm install --no-package-lock | yarn add --no-lockfile |
| (Нет) | yarn add --pure-lockfile |
npm install [package] --save | 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 |
© 2016–present Yarn Contributors
Licensed under the BSD License.
https://classic.yarnpkg.com/en/docs/migrating-from-npm