Utilisation de pnpm avec Lerna
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
Lerna peut être utilisé dans un espace de travail pnpm pour bénéficier pleinement des avantages combinés de pnpm et Lerna.
Lorsqu'il est utilisé dans un espace de travail pnpm, Lerna :
-
résout les emplacements des packages via
pnpm-workspace.yaml(https://pnpm.io/workspaces) -
ignore la propriété
"workspaces"danspackage.json -
bloque les commandes
bootstrap,linketadd. À la place, utilisez directement les commandespnpmpour gérer les dépendances (https://pnpm.io/cli/install). -
respecte le protocole d'espace de travail pour les dépendances entre packages.
- Pendant
lerna version, les dépendances seront mises à jour normalement tout en conservant le préfixeworkspace:s'il existe. - Si un alias d'espace de travail est utilisé,
lerna versionn'incrémentera pas la version de la dépendance, car les alias ne spécifient pas de numéro de version à modifier.
- Pendant
Premiers pas
Pour configurer pnpm avec Lerna :
-
Si ce n'est déjà fait, installez
pnpm: https://pnpm.io/installation. -
Supprimez le dossier
node_modules/à la racine s'il existe. Si vous n'utilisez pas déjà d'espaces de travail, exécutezlerna cleanpour supprimer les dossiersnode_modules/dans tous les packages. -
Définissez
"npmClient": "pnpm"danslerna.json. -
Créez un fichier
pnpm-workspace.yamlà la racine de votre projet. Si vous utilisez déjà des espaces de travail npm ou yarn, déplacez la propriété "workspaces" depackage.jsonverspnpm-workspace.yaml. Sinon, déplacez la propriété "packages" delerna.jsonverspnpm-workspace.yaml. Par exemple :package.json{
"workspaces": ["packages/*"]
}et
lerna.json{
"packages": ["packages/*"]
}deviennent :
pnpm-workspace.yamlpackages:
- "packages/*" -
(optionnel) Exécutez
pnpm importpour générer un fichierpnpm-lock.yamlà partir d'un fichier de verrouillage existant. Consultez https://pnpm.io/cli/import pour les sources de fichiers de verrouillage prises en charge. -
Exécutez
pnpm install.