Migrando do npm

Migrar do npm é um processo bem fácil para a maioria dos usuários. Yarn pode usar o mesmo formato do package.json que o npm, e pode instalar qualquer projeto do registro npm.

Se você quer testar Yarn em um projeto existente, apenas tente executar:

yarn

Isso irá criar sua pasta node_modules usando o algoritmo de resolução do Yarn que é compatível com a resolução de algoritmo do node.js.

Se você receber um erro, por favor verifique se existe um problema relatado no rastreador de problemas do Yarn.

Quando você executar yarn ou yarn add <package>, o Yarn vai gerar o arquivo yarn.lock na pasta raíz do seu pacote. Você não precisa ler ou compreender este arquivo - basta adicionar ele no seu sistema de controle de versão. Quando outras pessoas começarem a usar Yarn em vez do npm, o arquivo yarn.lock irá garantir que comecem precisamente com as mesmas dependências que você tem.

Na maioria dos casos, só executar yarn ou yarn add pela primeira vez vai simplesmente funcionar. Em alguns casos, as informações em um arquivo package.json não são explícitas o suficiente para eliminar as dependências, e a forma determinista que Yarn escolhe dependências vai causar conflito de dependências. Isto é especialmente provável de acontecer em projetos maiores, onde às vezes npm install não funciona e desenvolvedores estão frequentemente removendo node_modules e reconstruindo do zero. Se isso acontecer, tente usar o npmpara deixar as versões das dependências mais explícitas, antes de converter para Yarn.

Outros desenvolvedores do projeto podem continuar usando npm, assim você não precisa ter todo mundo no projeto convertendo ao mesmo tempo. Os desenvolvedores usando o yarn terão exatamente a mesma configuração uns que os outros, e os desenvolvedores usando npm podem obter configurações ligeiramente diferentes, que é o comportamento esperado do npm.

Mais tarde, se você decidir que o Yarn não é para você, pode simplismente voltar a usar o npm sem fazer nenhuma alteração específica. Você pode excluir seu antigo arquivo yarn.lock se ninguém mais no projeto usa Yarn, mas não é necessário.

Se você estiver usando um arquivo npm-shrinkwrap.json no momento, esteja ciente que você pode terminar com um conjunto diferente de dependências. Yarn não suporta arquivos npm shrinkwrap já que eles não têm informação suficiente neles para o algoritmo mais determinístico do Yarn. Se você estiver usando um arquivo shrinkwrap pode ser mais fácil converter todos os que trabalham no projeto em usar o Yarn ao mesmo tempo. Basta remover o arquivo existente npm-shrinkwrap.json e de check-in no recém-criado arquivo yarn.lock.

Comparação de comandos CLI

npm Yarn
npm install yarn install
(N/A) yarn install --flat
(N/A) yarn install --har
(N/A) yarn install --no-lockfile
(N/A) yarn install --pure-lockfile
npm install [package] (N/A)
npm install --save [package] yarn add [package]
npm install --save-dev [package] yarn add [package] [--dev/-D]
(N/A) yarn add [package] [--peer/-P]
npm install --save-optional [package] yarn add [package] [--optional/-O]
npm install --save-exact [package] yarn add [package] [--exact/-E]
(N/A) yarn add [package] [--tilde/-T]
npm install --global [package] yarn global add [package]
npm update --global                       yarn global upgrade                    
npm rebuild yarn install --force
npm uninstall [package] (N/A)
npm uninstall --save [package] yarn remove [package]
npm uninstall --save-dev [package] yarn remove [package]
npm uninstall --save-optional [package] yarn remove [package]
npm cache clean yarn cache clean [package]
rm -rf node_modules && npm install yarn upgrade