yarn import
Génère le `yarn.lock` depuis un dossier existant `node_modules` d'un npm installé.
yarn import
Cette commande aide à la migration des projets qui s’appuient actuellement sur npm-shrinkwrap.json
, en minimisant les différences entre le fichier de verrouillage et l’arborescence de dépendance du mieux qu’il peut.
Motivation
De nombreux projets utilisent actuellement npm shrinkwrap
ou vérifient leur ` node_modules dans un fichier source de contrôle car ils ont des arborescences de dépendances fragiles. Ces projets ne peuvent pas migrer facilement vers Yarn, car
yarn install pourrait produire une arborescence de dépendance logique très différente. Tous les arborescences ne peuvent pas être représentées par le
yarn.lock` de Yarn, et certaines arborescences valides seront automatiquement dédoublonnées lors de l’installation. Ces nuances et d’autres constituent un obstacle majeur à la migration manuelle.
yarn import
vise à atténuer ce problème en générant un fichier yarn.lock
en utilisant les versions trouvées à l’intérieur de node_modules
selon les règles de résolution normale de require.resolve()
. Dans les cas où le mécanisme de résolution de Yarn ne peut pas être satisfaisant pour l’arborescence des dépendances existante de manière identique, des alertes se produiront afin que vous puissiez réviser manuellement les modifications. L’arborescence existante de node_modules
sera vérifié au préalable pour la validité et le fichier de verrouillage résultant doit être installé (yarn install
) sans aucune surprises (échec de la compatibilité, dépendances insolubles, auto-dédoublonnage, etc.)
$ yarn import
yarn import vx.x.x
success Folder in sync.
warning Using version "2.2.4" of "lru-cache" instead of "2.7.3" for "ngstorage > grunt > minimatch"
warning Using version "2.0.6" of "readable-stream" instead of "2.2.9" for "ngstorage > karma > chokidar > readdirp"
[...]
success Saved lockfile.
✨ Done in 11.96s.