별칭
Aliases는 커스텀 네임으로 패키지를 설치할 수 있게 해줍니다.
프로젝트 전체에서 lodash를 사용한다고 가정해 봅시다. lodash에 프로젝트를 망가뜨리는 버그가 있습니다. 수정 사항이 있지만 lodash가 이를 병합하지 않습니다. 일반적으로 포크에서 lodash를 직접(git 호스팅 종속성으로) 설치하거나 다른 이름으로 게시할 것입니다. 두 번째 방법을 사용하는 경우 프로젝트의 모든 require를 새 종속성 이름으로 바꿔야 합니다(require('lodash') => require('awesome-lodash')). aliases를 사용하게 되면 세번째 옵션이 생깁니다.
awesome-lodash라는 새 패키지를 게시하고 lodash를 별칭으로 사용하여 설치하세요:
pnpm add lodash@npm:awesome-lodash
코드의 변경은 필요하지 않고, 이제 lodash에 대한 모든 require가 awesome-lodash로 해석됩니다.
서로 다른 두가지 버전의 패키지를 사용하게 된다면 다음과 같이 사용합니다:
pnpm add lodash1@npm:lodash@1
pnpm add lodash2@npm:lodash@2
이제 require('lodash1')로 lodash의 첫 번째 버전을, require('lodash2')로 두 번째 버전을 require할 수 있습니다.
This gets even more useful when combined with hooks. node_modules의 모든 패키지에서 lodash를 awesome-lodash로 교체하고 싶을 수도 있습니다. 다음 .pnpmfile.mjs를 사용하면 쉽게 이를 달성할 수 있습니다:
.pnpmfile.mjs
function readPackage(pkg) {
if (pkg.dependencies && pkg.dependencies.lodash) {
pkg.dependencies.lodash = 'npm:awesome-lodash@^1.0.0'
}
return pkg
}
export const hooks = {
readPackage
}