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
}
}