1️⃣ npm
- Node.js의 패키지를 관리할 수 있는 도구
- Node.js를 설치하면 npm도 자동으로 설치됨
🛡️ 패키지 관련 명령어
- 프로젝트 초기화 (package.json 생성)
npm init
- package.json과 package-lock.json에 정의된 모든 의존성 설치
npm install
npm i
- 패키지 설치
npm install [패키지 이름]
npm i [패키지 이름]
- devDependencies에 패키지 추가
npm install --save-dev [패키지 이름]
npm i -D [패키지 이름]
- 패키지 업데이트
npm update [패키지 이름]
- 패키지 제거
npm uninstall [패키지 이름]
- 현재 프로젝트에 설치된 패키지 목록 확인
npm list
🛡️ 의존성 관리
package.json
- package.json에서 메타데이터와 파일의 종속성을 기록
- 종속성의 정확한 버전 및 의존성 트리는 package-lock.json과 npm-shrinkwrap.json에서 관리
node_modules
- 프로젝트에 설치된 패키지가 저장되는 폴더
- package.json에 정의된 의존성을 기반으로 관리
스크립트 실행
- package.json에 정의된 스크립트를 실행
npm run [스크립트 이름]
2️⃣ yarn
- 페이스북에서 개발한 패키지 관리자
🛡️ 패키지
- 프로젝트 초기화 (package.json 생성)
yarn init
- package.json과 yarn.lock에 정의된 모든 의존성 설치
yarn install
yarn
- 패키지 설치
yarn add [패키지 이름]
- devDependencies에 패키지 추가
yarn add --dev [패키지 이름]
yarn add -D [패키지 이름]
- 패키지 업데이트
yarn upgrade [패키지 이름]
- 패키지 제거
npm remove [패키지 이름]
- 현재 프로젝트에 설치된 패키지 목록 확인
yarn list
🛡️ 의존성 관리
package.json
- package.json에서 메타데이터와 파일의 종속성을 기록
yarn.lock
- 프로젝트의 모든 의존성 트리와 각 패키지의 정확한 버전 기록
- npm의 package-lock.json과 유사
node_modules
- 프로젝트에 설치된 패키지가 저장되는 폴더
- package.json에 정의된 의존성을 기반으로 관리
스크립트 실행
- package.json에 정의된 스크립트를 실행
yarn run [스크립트 이름]
3️⃣ npm vs yarn
- 설치 속도 - yarn 👍
- yarn이 병렬 설치와 캐싱 메커니즘으로 인해 더 빠르다
- npm은 패키지 캐싱을 지원하지 않는다
- 안전성
- npm은 패키지가 설치될 대 자동으로 코드와 의존성을 실행하여 편하지만 안전성을 위협할 수 있다
- 보안성
- yarn은 모든 디바이스에서 같은 패키지를 설치하는 것을 보장하기 때문에 버전의 차이로 인한 버그를 방지할 수 있다
4️⃣ 뭘 쓰는 게 좋을까?
🛡️ npm을 쓰면 좋은 경우
- yarn은 추가로 설치해야 하지만 npm은 기본 제공이므로 단순한 프로젝트에서 사용하기 좋다
🛡️ yarn을 쓰면 좋은 경우
- 설치 속도가 빠르고 캐싱이 효율적이므로 대규모 프로젝트에서 사용하기 좋다
- 여러 패키지를 하나의 리포지토리에서 관리해야 하는 경우 yarn의 워크스페이스 기능을 활용할 수 있다
반응형
'Library & Runtime > Node.js' 카테고리의 다른 글
[node.js] multer 파일 업로드 Unexpected field 에러 (0) | 2022.05.15 |
---|