Qual é a diferença entre yarn e npm?

O fio é uma camada de abstração sobre o npm desenvolvida pelo Facebook para resolver alguns dos problemas do próprio npm, a saber, velocidade e falta de resultados reprodutíveis / determinísticos.

A velocidade do fio é aprimorada usando instalações paralelas, cache offline e enfileiramento de solicitações. O determinismo é alcançado pelo uso do arquivo de bloqueio, que salva a versão das dependências e suas dependências.

Exceto pelas maiores diferenças, o fio tem comandos CLI diferentes e uma saída de terminal mais agradável (menos detalhada).

Apesar dessas melhorias, no SymbaSync ainda estamos usando o npm, que desde a versão 5 suporta arquivos de bloqueio e maior velocidade de instalação quase igualando a velocidade do fio.