Migrer de npm devrait être un processus assez facile pour la plupart des utilisateurs. Yarn peutconsumer le même format package.json que npm, et peut installer n’importe quel paquet du registre npm.
Si vous voulez essayer Yarn sur votre projet npm existant, essayez simplement d’exécuter :
yarn
Cela disposera votre dossier node_modules en utilisant l’algorithme de résolution de Yarnqui est compatible avec thenode.js module resolution algorithm.
Si vous obtenez une erreur, veuillez vérifier si un problème existe ou le signaler auYarn issue tracker.
Lorsque vous exécutez yarn ou yarn add <package>, Yarn génère un fichier yarn.lock dans le répertoire racine de votre paquet. Vous n’avez pas besoin de lire ou de comprendre ce fichier – il suffit de l’enregistrer dans le contrôle de la source. Lorsque d’autres personnes commenceront à utiliser Yarn au lieu de npm, le fichier yarn.lock s’assurera qu’ils obtiennent précisément les mêmes dépendances que vous.
Dans la plupart des cas, l’exécution de yarn ou yarn add pour la première fois fonctionnera simplement. Dans certains cas, les informations d’un fichier package.json ne sont pas assez explicites pour éliminer les dépendances, et la façon déterministe dont Yarn choisit les dépendances se heurtera à des conflits de dépendances. Cela est particulièrement susceptible de se produire dans les grands projets où parfois npm install ne fonctionne pas et où les développeurs suppriment fréquemment node_modules et reconstruisent à partir de zéro. Si cela se produit, essayez d’utiliser npm pour rendre les versions des dépendances plus explicites, avant de convertir à Yarn.
A partir de Yarn 1.7.0, vous pouvez importer votre état package-lock.json, généré par npm à Yarn, en utilisant yarn import.
Les autres développeurs du projet peuvent continuer à utiliser npm, donc vous n’avez pas besoin de faire convertir tout le monde sur votre projet en même temps. Les développeurs utilisant yarn obtiendront tous exactement la même configuration les uns que les autres, et les développeurs utilisant npm peuvent obtenir des configurations légèrement différentes, ce qui est le comportement prévu de npm.
Plus tard, si vous décidez que Yarn n’est pas pour vous, vous pouvez simplement revenir à l’utilisation de npm sans faire de changements particuliers. Vous pouvez supprimer votre ancien fichier yarn.lock si personne sur le projet n’utilise plus Yarn mais ce n’est pas nécessaire.
Si vous utilisez un fichier npm-shrinkwrap.json en ce moment, sachez que vous pouvez vous retrouver avec un ensemble différent de dépendances. Yarn ne prend pas en charge les fichiers npmshrinkwrap car ils ne contiennent pas suffisamment d’informations pour alimenter l’algorithme déterministe smore de Yarn. Si vous utilisez un fichier shrinkwrap, il peut être plus facile de convertir tous ceux qui travaillent sur le projet pour utiliser Yarn en même temps. Retirez simplement votre fichier npm-shrinkwrap.json existant et enregistrez le fichier yarn.lock nouvellement créé.
CLI comparaison des commandes
| npm (v5) | Yarn |
|---|---|
npm install |
yarn add |
| (N/A) | yarn add --flat |
| (N/A) | yarn add --har |
npm install --no-package-lock |
yarn add --no-lockfile |
| (N/A) | yarn add --pure-lockfile |
npm install --save |
yarn add |
npm install --save-dev |
yarn add --dev |
| (N/A) | yarn add --peer |
npm install --save-optional |
yarn add --optional |
npm install --save-exact |
yarn add --exact |
| (N/A) | yarn add --tilde |
npm install --global |
yarn global add |
npm update --global |
yarn global upgrade |
npm rebuild |
yarn add --force |
npm uninstall |
yarn remove |
npm cache clean |
yarn cache clean |
rm -rf node_modules && npm install |
yarn upgrade |
npm version major |
yarn version --major |
npm version minor |
yarn version --minor |
npm version patch |
yarn version --patch |