별칭

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')로 두 번째 버전을 불러올 수 있습니다.

이 기능은 훅과 함께 사용되면 더욱 유용합니다. node_modules의 모든 패키지에서 lodash를 awesome-lodash로 바꾸고 싶을 수도 있습니다. 다음과 같은 .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
  }
}