Lakaplar
Lakaplar, paketleri farklı isimler ile yüklemeyi sağlar.
Projede lodash
kullandığını varsayalım. lodash
'te bir bug var ve çalışmanı etkiliyor. Bu sorunu çözmek için bir fikrin ve çözümün var ancak lodash
bu çözümü içeri almıyor. Normal şartlarda bir paket yazıp lodash
bağımlılığı ile veya tamamen farklı bir ad ile yayınlayabilirsiniz. Eğer ikinci çözümü seçtiyseniz, paket adını tüm projede değiştirmeniz gerekebilir. (require('lodash')
=> require('awesome-lodash')
) Ama lakaplar ile üçüncü bir seçeneğin de var.
awesome-lodash
adında bir paket yayınla ve onu lodash
adı ile çağır:
pnpm add lodash@npm:awesome-lodash
Kodda değişikliğe gerek yok, lodash
gereken her yerde awesome-lodash
şeklinde çağrılabilir.
Bazen projede bir paketin iki farklı versiyonunu kullanmak isteyebilirsin. Kısaca:
pnpm add lodash1@npm:lodash@1
pnpm add lodash2@npm:lodash@2
Şimdi ise, lodash'in ilk versiyonuna(require('lodash1')
) ve ikinci versiyonuna(require('lodash2')
) ihtiyacın var.
Kancalar ile çok daha güçlü ve kullanışlı hale gelebilir. Eğer lodash
içeren tüm paketleri awesome-lodash
ile node_modules
'da değiştirmek istersen, .pnpmfile.cjs
dosyasına gidip şu değişiklikleri yapman gerekiyor:
function readPackage(pkg) {
if (pkg.dependencies && pkg.dependencies.lodash) {
pkg.dependencies.lodash = 'npm:awesome-lodash@^1.0.0'
}
return pkg
}
module.exports = {
hooks: {
readPackage
}
}