Yarn es una nueva herramienta javaScript para instalar y gestionar paquetes que vendría a ser como un npm digievolucionado. Se diferencia sobre todo por ser más rápido, lo cual no es muy relevante -pues no se suele andar instalando entornos con frecuencia-, y por el «yarn.lock», que sí es un avance importante. Este archivo es una instantánea exacta de las dependencias con una determinada versión, lo que te asegura que, salvo indicación expresa, los paquetes con sus respectivas dependencias van a ser siempre los mismos.
Una vez instalado, el mecanismo básico para instalar, actualizar y eliminar paquetes es muy parecido al de npm.
Para comenzar un proyecto:
yarn init
Para instalar una dependencia igual que en el npm, pero reemplazando el install por add.
yarn add angular
Si queremos instalar una versión en concreto basta con indicarlo tras una arroba
yarn add angular@1.6.3
Y con el flag --dev o -D para registrarlo en el package json como dependencia.
yarn add angular@1.6.3 --dev
Para actualizar se utiliza el comando upgrade:
yarn upgrade angular
Y para eliminar una dependencia, remove.
yarn remove angular
Una vez definido el package.json, como ocurre con npm, para instalar todo el tinglado basta con escribir yarn o yarn install.
Por último, indicar que también en este caso podemos ejecutar scripts, pero un poco más sencillo que con npm, ya que todos se ejecutan con run. Por ejemplo, si tuviéramos este definido en el package:
"scripts": {
"lint": "eslint"
}
Para ejecutarlo basta con escribir:
yarn run test
Y termino respondiendo una pregunta que quizás se haga alguien: ¿tiene yarn menos paquetes que npm? NO. Son los mismos, lo único que cambia es la manera de gestionarlos.