yarn import

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

yarn import

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

Motivação

Muitos projetos atualmente usam o 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 migrar facilmente para o Yarn, já que o yarn install poderia produzir uma árvore lógica de dependências muito diferente. Nem todas as árvores podem ser representadas pelo yarn.lock do Yarn, e algumas árvores válidas terão seus arquivos duplicados automaticamente removidos (deduped) na instalação. Estas e outras nuances representam um obstáculo significativo à migração manual.

O comando yarn import visa aliviar este desafio, gerando um arquivo yarn.lock usando as versões encontradas dentro de node_modules de acordo com as regras de resolução normal do require.resolve(). Em casos onde o mecanismo de resolução do Yarn não conseguir satisfazer a árvore de dependências existente de forma idêntica, alertas serão emitidos para que você possa revisar manualmente as mudanças. A árvore existente do node_modules será previamente verificada para validação, e o lockfile resultante deve ser capaz de ser instalado usando o yarn install sem surpresas (falhas 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.