yarn import

Генерує `yarn.lock` файл з поточних встановлених npm пакетів з `node_modules` теки.

yarn import

Ця команда допомогає мігрувати проекти, які залежні від npm-shrinkwarp.json, як умога краще зменшуючи відмінності між lockfile та поточним деревом залежностей.

Мотивація

Багато проектів використовуюь npm shrinkwrap або додають теку node_modules до системи контролю версій, так як дерево залежностей не стабільше. Такі проекти не так просто мігрувати на Yarn, тому що yarn install може створити інше логічне дерево залежностей. Не всі дерева залежностей можуть бути відображені в Yarn yarn.lock, і деякі коректні дерева будуть автоматично відкинуті під час установки пакетів. Ці, а також інші тонкощі, можуть становити суттєву перепону до міграції в ручному режимі.

yarn import має за ціль пом’якшити ці виклики, за допомогою створення файлу yarn.lock, використовуючи версії, знайдені всередині node_modules відповідно до звичайних правиль визначень з require.resolve(). У випадках, коли механізм визначення в Yarn не може задовольнити створення ідентичних поточних дерев залежностей, повідомлення будуть показані користувачеві, щоб він міг перевірити зміни. Поточне дерево залежностей з node_modules теки буде перевірене заздалегідь, і результуючий lockfile буде коректним для наступної yarn install команди без будь-яких несподіванок (не задовільнені сумісності пакетів, не знайдені залежності, автоматичні дедуплікати, тощо)

$ yarn import
yarn import vx.x.x
success Folder in sync.
warning Using version "2.2.4" of "lru-cache" instead of "2.7.3" for "ngstorage > grunt > minimatch"
warning Using version "2.0.6" of "readable-stream" instead of "2.2.9" for "ngstorage > karma > chokidar > readdirp"
[...]
success Saved lockfile.
✨  Done in 11.96s.