티스토리 뷰

728x90
반응형

거의 대부분의 프로젝트를 pnpm으로 이사하는 중입니다

 

pnpm으로 이사하기 어렵지 않습니다

 

 

 

package.json에 다음과 같이 작성합니다

 

"scripts": {
  "preinstall": "npx only-allow pnpm", 
  ...
}

 

 

실수로 pnpm이 아닌 다른 종류의 패키지매니저를 사용하여 의존성 설치를 할 수 없도록 합니다

 

 

 

pnpm import

 

yarn.lock 또는 package-lock.json 을 통해 pnpm-lock.yaml을 생성합니다

 

pnpm-lock.yaml 파일이 생성되었다면 이제 yarn.lock이나 package-lock.json은 필요가 없어졌습니다 과감하게 지웁니다

 

 

pnpm i

 

패키지를 설치합니다

 

 

pnpm import, install 과정에서 의미있는 정보를 얻게되는 경우도 있습니다

 

 

 

널리 알려진 이름으로는 유령 의존성이라고 하는데

 

직접 의존성을 명시하지 않았음에도, 다른 의존성에 의해 설치된 의존성을 사용할수 있다는 점인데요

 

 

예를 들어 내가 이용하는 프로젝트에 A패키지를 사용하고 있습니다

 

이 A 패키지는 내부적으로 B 패키지를 의존하고 있습니다

npm, yarn에서는 package.json에 A패키지가 명시되어있다면,

 

A패키지가 B패키지를 의존하고 있으므로,

 

B패키지를 package.json에 명시되어있지 않더라도 사용할수 있습니다

 

의존성이 호이스팅됩니다

 

이로 인해 의도하지 않은 동작을 하게되는 경우가 발생할수 있습니다

 



 

하지만 pnpm은 의존성을 호이스팅 하지 않습니다.

 

직접 의존하는 패키지가 있다면 package.json에 직접 의존성을 표시해야합니다

 

그래서 pnpm으로 전환하는 과정에서 몰랐던 의존관계를 파악할수 있게되는 경우가 있습니다

 

 

pnpm으로 오세요~

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함