yarn import

Gera o arquivo `yarn.lock` a partir de uma pasta `node_modules` já instalada pelo npm.

yarn import

Este comando auxilia a migração de projetos que atualmente dependem do npm-shrinkwrap.json, minimizando as diferenças entre o arquivo de bloqueio e a árvore de dependência existente da melhor maneira possível.

Motivação

Muitos projetos atualmente usam npm shrinkwrap ou adicionam sua pasta node_modules em seu controle de versão, porque eles têm árvores de dependência frágeis. Estes projetos não podem facilmente migrar para Yarn, porque yarn install poderia produzir uma árvore lógica de dependência muito diferente. Nem todas as árvores podem ser representadas pelo yarn.lock do Yarn, e algumas árvores válidas serão automaticamente “deduped” na instalação. Estas e outras nuances apresentam um obstáculo significativo à migração manual.

yarn import visa aliviar este desafio, gerando um arquivo yarn.lock usando as versões encontradas dentro node_modules de acordo com as regras de resolução normal require.resolve(). Em casos onde o mecanismo de resolução de Yarn não conseguir satisfazer a árvore de dependência existente identicamente, alertas serão feitos para que você possa manualmente revisar as mudanças. A árvore de node_modules existente será verificada para validação previamente, e o lockfile resultante deve ser capas de yarn install sem surpresas (falha de compatibilidade, dependências não resolvidas, auto-dedupes, etc.)

$ 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.