Migrando desde npm

Migrar de npm debería ser un proceso bastante fácil para la mayoría de usuarios. Yarn puede consumir el mismo formato de package.json que npm y puede instalar cualquier paquete del registro de npm.

Si desea probar Yarn en su proyecto actual npm, basta con ejecutar:

yarn

Esto creará su directorio node_modules utilizando el algoritmo de resoluciòn de Yarn, que es compatible con el algoritmo de resoluciòn del mòdulo de node.js.

Si se produce un error, por favor verifique si el problema ha sido reportado, o repórtelo al Yarn issue tracker.

Ejecutando yarn o yarn add <package>, Yarn generará un archivo yarn.lock dentro de la carpeta raíz de su paquete. No necesitará leer o comprender este archivo - solo chequéelo en su control de código fuente. Cuando otras personas comienzen a utilizar Yarn en lugar de npm, el archivo yarn.lock le asegurara que ellos obtengan exactamente las mismas dependencias que Usted tiene.

En la mayoría de los casos, ejecutando yarn o yarn add funcionará desde la primera vez. En algunos casos, la informaciòn contenida en el archivo package.json no es lo suficientemente explícito para eliminar dependencias, y la forma determinística en que Yarn elige dependencias puede provocar conflictos de dependencias. Esto puede ocurrir especialmente en proyectos grandes donde a veces npm install no funciona y los desarrolladores a menudo eliminan node_modules y reconstruyen desde cero. Si esto sucede, intente usar npm para definir explícitamente las versiones de las dependencias, antes de convertirlo a Yarn.

Otros desarrolladores del proyecto pueden seguir usando npm, sin necesidad que todos deban convertirlo al mismo tiempo. Los desarrolladores que usen yarn tendrán exactamente la misma configuraciòn que los demás, y los desarrolladores que usen npm pueden tener configuraciones ligeramente diferentes, que es el comportamiento esperdo de npm.

Más tarde, si decide que Yarn no es para usted, podrá volver a usar npm sin necesidad de ningún cambio en particular. Puede borrar su viejo archivo yarn.lock si nadie más en el proyecto está usando Yarn, pero esto no es necesario.

Si está usando un archivo npm-shrinkwrap.json ahora, tenga en cuenta que puede que termine con un conjunto diferente de dependencias. Yarn no soporta los archivos npm shrinkwrap debido a que estos no incluyen informaciòn suficiente para reforzar el algoritmo màs determinìstico de Yarn. Si está usando un archivo shrinkwrap tal vez sea más fácil hacer que todos en el proyecto usen Yarn al mismo tiempo. Simplemente borre su archivo npm-shrinkwrap.json y chequee el nuevo archivo yarn.lock creado.

Comparación de commandos del CLI

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