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.