티스토리 뷰
거의 대부분의 프로젝트를 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으로 오세요~
'WEB2.0 > 프로그래밍' 카테고리의 다른 글
pnpm workspace 사용하기 (0) | 2025.01.20 |
---|---|
mac에서 mongdb 실행 오류 발생할때 (1) | 2024.12.12 |
타입스크립트의 초과속성체크(excess property checks)를 알고 계셨나요? (0) | 2024.12.05 |
jest를 통해 테스트대역 파헤치기 (1) | 2024.12.04 |
더 작은 컨테이너 이미지를 만드는 매직 (0) | 2024.11.22 |
- Total
- Today
- Yesterday
- 트위터
- Apple
- iPhone
- 대학생
- 애플
- CSS
- 구글
- php
- 아이디어
- 웹표준
- 스마트폰
- 모바일
- 아이폰
- 창업
- 소프트웨어
- 경진대회
- 자바스크립트
- 어플리케이션
- 네이버
- 안드로이드
- 앱
- 앱스토어
- 공모전
- android
- JavaScript
- 벤처
- AWS
- 게임
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |