Passer au contenu principal
Version : 8.x

Alias

Les alias vous permettent d'installer des packages avec des noms personnalisés.

Supposons que vous utilisiez lodash sur tout votre projet. Il y a un bug dans lodash qui casse votre projet. Vous avez un correctif mais lodash ne le fusionnera pas. Normalement vous devez soit installer lodash partir de votre fork directement (en tant que dépendance hébergée par git), soit le publier avec un nom différent. Si vous utilisez la deuxième solution vous devez remplacer tous les require de votre projet par le nouveau nom de (require('lodash') => require('awesome-lodash')). Avec les alias, vous avez une troisième option.

Publiez un nouveau package appelé awesome-lodash et installez-le en utilisant lodash comme son alias:

pnpm add lodash@npm:awesome-lodash

Aucune modification du code n'est nécessaire. Toutes les require de lodash seront désormais awesome-lodash.

Parfois, vous souhaiterez utiliser deux versions différentes d'un package dans votre projet. Facile:

pnpm add lodash1@npm:lodash@1
pnpm add lodash2@npm:lodash@2

Maintenant, vous pouvez require la première version de lodash via require('lodash1') et la deuxième par require('lodash2').

Cela devient encore plus puissant lorsqu'il est combiné avec des crochets. Peut-être que vous voulez remplacer lodash par awesome-lodash dans tous les packages de node_modules. Vous pouvez facilement le faire avec le fichier .pnpmfile.cjs:

function readPackage(pkg) {
if (pkg.dependencies && pkg.dependencies.lodash) {
pkg.dependencies.lodash = 'npm:awesome-lodash@^1.0.0'
}
return pkg
}

module.exports = {
hooks: {
readPackage
}
}