Migrer depuis npm
Migrer depuis npm devrait être un processus relativement facile pour la plupart des utilisateurs. Yarn peut utiliser en entrée le même format de package.json
que npm et installer n’importe quel package depuis le registre de npm.
Si vous voulez essayer Yarn sur un projet npm existant, lancez la commande suivante :
yarn
Cela s’appliquera sur votre répertoire node_modules
en utilisant l’algorithme de résolution de Yarn, compatible avec l’algorithme de résolution des modules de node.js.
Si vous obtenez une erreur, cherchez un problème similaire existant ou bien créez-en un nouveau sur le gestionnaire de bugs de Yarn.
Lorsque vous lancez yarn
ou yarn add <package>
, Yarn va générer un fichier yarn.lock
dans le répertoire racine de votre package. Vous n’avez pas besoin de lire ou de comprendre ce fichier - rajoutez-le simplement dans votre gestionnaire de code source. Quand d’autres personnes commenceront à utiliser Yarn à la place de npm
, le fichier yarn.lock
s’assurera qu’ils récupèrent précisément les même dépendances que vous.
Dans la plupart des cas, exécuter yarn
ou yarn add
la première fois fonctionnera. Dans certains cas, les informations dans le fichier package.json
ne sera pas assez explicite pour éliminer certaines dépendances et la méthode déterministe utilisée par Yarn pour choisir les dépendances mènera à des conflits de dépendances. Cela survient souvent dans les gros projets ou parfois npm install
ne fonctionne pas et où les développeurs se retrouvent à fréquemment supprimer leur répertoire node_modules
pour tout rebuilder. Dans ce cas, essayez d’utiliser npm
pour rendre les versions de vos dépendances plus explicites, avant de basculer à Yarn.
D’autres développeurs de votre projet peuvent continuer à utiliser npm
, nous n’êtes pas obligé de convertir tout le monde en même temps. Les développeurs utilisant yarn
auront tous la même configuration et les développeurs utilisant npm
pourront avoir des configurations légèrement différentes les uns des autres, ce qui est le comportement voulu de npm
.
Plus tard, si vous décidez que Yarn n’est pas pour vous, vous pouvez juste revenir à l’utilisation de npm
sans faire de changement particulier. Vous pourrez alors supprimer votre vieux fichier yarn.lock
si plus personne dans votre projet n’utilise Yarn, mais cela n’est pas obligatoire.
Si vous utilisez actuellement un fichier npm-shrinkwrap.json
, sachez que vous pouvez avoir un jeu de dépendances différent. Yarn ne supporte pas les fichiers npm shrinkwrap car ils ne contiennent pas suffisamment d’informations pour être gérés par l’algorithme déterministe de Yarn. Si vous utilisez un fichier shrinkwrap, il serait peut-être plus facile de convertir à Yarn tous les utilisateurs de votre projet en même temps. Supprimez simplement votre fichier npm-shrinkwrap.json
et vérifiez le fichier yarn.lock
fraîchement créé.
Comparaison des commandes 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 |