
Per què utilitzo Corepack?
Saps com utilitzar diferents versions de pnpm en diferents projectes?
Què és Corepack?
Corepack és un gestor de versions de gestors de paquets (com ara: yarn / pnpm) que ve integrat amb Node.js (v16.9.0+).
Amb ell pots utilitzar diferents gestors de paquets o diferents versions en diferents projectes o fins i tot en diferents directoris.
Així que ja no cal que instal·lis diferents gestors de paquets per separat, a través de Corepack pots gestionar-los de manera més convenient.
Ús de Corepack
L’ús de Corepack és molt senzill, només cal utilitzar la comanda corepack enable per activar-lo.
Però cal tenir en compte que primer has de desinstal·lar altres gestors de paquets que hagis instal·lat anteriorment al sistema, ja que les seves comandes es troben al directori bin del sistema,
normalment amb una prioritat més alta que les comandes de Corepack, si no les elimines, Corepack podria no funcionar.
Podem buscar tots els camins de les comandes amb el mateix nom mitjançant la comanda which -a, i després canviar-ne el nom o eliminar-les directament.
which -a yarn
~/Library/Caches/fnm_multishells/6325_1705128448058/bin/yarn/opt/homebrew/bin/yarn~/Library/Caches/fnm_multishells/7447_1665198844214/bin/yarnNomés cal assegurar-se que la primera ruta retornada per which -a (preferida) sigui la de Corepack, i no hi haurà cap problema.
which -a pnpm
~/Library/Caches/fnm_multishells/6325_1705128448058/bin/pnpm~/Library/Caches/fnm_multishells/7447_1665198844214/bin/pnpmA continuació, verifica que les seves versions no tinguin problemes i podràs fer-ne un ús agradable!
yarn -vpnpm -vUtilitzar la versió especificada
El mètode més estàndard és configurar el camp packageManager al fitxer package.json del projecte, per exemple:
{ "packageManager": "pnpm@8.14.1"}Això forçarà el projecte actual a utilitzar la versió 8.14.1 de pnpm (si aquesta versió no està instal·lada, també s’instal·larà automàticament).
Pots modificar packageManager en qualsevol moment per actualitzar o rebaixar la versió.
pnpm -v8.14.1I a més, quan utilitzes incorrectament altres gestors de paquets, es produirà un error que ho impedirà.
Usage Error: This project is configured to use pnpm
$ yarn ...Si no has configurat el camp packageManager, s’utilitzarà la versió per defecte global,
pots utilitzar la comanda corepack prepare --activate fora del projecte per canviar a la versió especificada, per exemple:
# Això actualitzarà la versió per defecte global de pnpm a l'última versió.corepack prepare pnpm@latest --activate
# Això canviarà la versió per defecte global de pnpm a la 7.33.6.corepack prepare pnpm@7.33.6 --activateTambé pots utilitzar temporalment una versió específica, que no canviarà la versió per defecte global, només tindrà efecte en l’execució actual:
corepack pnpm@8 -v8.14.1
corepack pnpm@7 -v7.33.2