u3u Bloc de u3u
Per què utilitzo Corepack?

Per què utilitzo Corepack?

u3u u3u

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.

Terminal window
which -a yarn
~/Library/Caches/fnm_multishells/6325_1705128448058/bin/yarn
/opt/homebrew/bin/yarn
~/Library/Caches/fnm_multishells/7447_1665198844214/bin/yarn

Només cal assegurar-se que la primera ruta retornada per which -a (preferida) sigui la de Corepack, i no hi haurà cap problema.

Terminal window
which -a pnpm
~/Library/Caches/fnm_multishells/6325_1705128448058/bin/pnpm
~/Library/Caches/fnm_multishells/7447_1665198844214/bin/pnpm

A continuació, verifica que les seves versions no tinguin problemes i podràs fer-ne un ús agradable!

Terminal window
yarn -v
pnpm -v

Utilitzar la versió especificada

El mètode més estàndard és configurar el camp packageManager al fitxer package.json del projecte, per exemple:

package.json
{
"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ó.

Terminal window
pnpm -v
8.14.1

I a més, quan utilitzes incorrectament altres gestors de paquets, es produirà un error que ho impedirà.

Terminal window
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:

Terminal window
# 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 --activate

També pots utilitzar temporalment una versió específica, que no canviarà la versió per defecte global, només tindrà efecte en l’execució actual:

Terminal window
corepack pnpm@8 -v
8.14.1
corepack pnpm@7 -v
7.33.2