본문 바로가기
Backend/Server

npm 패키지 관리 | npm link, npm pack and npm publish

by 신림쥐 2024. 1. 12.
728x90
반응형

 



개요

npm link와 npm publish는 Node.js 패키지 관리와 관련된 명령어입니다.

 

  • 로컬에서 개발 중인 패키지를 다른 프로젝트에서 쉽게 테스트할 수 있도록 연결합니다.
  • 패키지를 직접 node_modules에 복사하지 않고 심볼릭 링크를 사용합니다.

 

  • 로컬 개발 중인 패키지를 다른 프로젝트에서 바로 테스트 가능
  • 패키지를 수정하면 바로 반영됨 (재설치 불필요)
  • npm link는 실제 배포용이 아니라 개발용

 

패키지를 개발하는 디렉터리에서 실행

cd ~/my-package
npm link
=
 

해당 패키지를 사용할 프로젝트에서 실행

 
cd ~/my-project
npm link my-package

 

연결 해제시

npm unlink my-package

 


npm pack

현재 디렉터리에 있는 패키지를 .tgz 파일(타르볼)로 압축하여 배포 전에 패키지로 테스트할 수 있도록 하는 명령어 입니다.

 

패키지를 직접 배포하지 않고, 로컬에서 미리 패키지를 테스트를 하거나 npm publish가 실행되기 전에 어떤 파일이 포함될지를 확인할 수 있습니다. .

 

 

pack 사용 방법

package.json의 files 필드에 포함된 파일만 압축됨 (없으면 기본적으로 .gitignore와 유사한 규칙을 따름)

{
  "files": [
    "dist",
    "index.js"
  ]
}

 

현재 폴더의 package.json을 참고하여 .tgz 파일(예: my-package-1.0.0.tgz)을 생성되고, tar -tzf 명령어로 포함된 파일 목록 확인 가능

npm pack

 

 

현재 프로젝트에 my-package의 1.0.0 버전 .tgz 파일을 다운로드

npm pack my-package@1.0.0

 

다른 프로젝트에서 설치

npm install ./my-package-1.0.0.tgz

 


npm publish

  • 패키지를 npm 레지스트리에 업로드하여 전 세계에서 설치 가능하게 만듭니다.
  • 다른 프로젝트에서 npm install my-package로 쉽게 사용 가능

 

npm publish 특징

  • 공식 npm 레지스트리에 등록됨
  • 전 세계 어디서든 npm install로 다운로드 가능
  • 테스트 없이 바로 npm publish하면 문제가 발생할 수도 있음

 

publish 사용 방법

package.json이 포함된 패키지 폴더에서 실행

cd ~/my-package
npm publish

 

다른 프로젝트에서 설치

npm install my-package

 

새로운 버전 배포

npm version patch  # 버전 1.0.0 → 1.0.1 증가
npm publish

 

 

로컬에서 개발 중이라면 npm link, 전 세계에 배포하려면 npm publish를 사용하세요!

  • 패키지 개발 중 → npm link 사용하여 다른 프로젝트에서 테스트
  • 완성된 패키지 배포 → npm publish로 npm에 등록
  npm link npm pack npm publish
용도 로컬 패키지 연결 (개발용) 로컬 패키지 설치(개발용) npm에 패키지 배포 (배포용)
동작 방식 심볼릭 링크 사용 .tgz npm 레지스트리에 업로드
사용 시기 패키지를 개발 중이고, 테스트하려는 경우 패키지를 개발 중이고, 테스트하려는 경우 패키지가 완성되어 실제 사용하려는 경우
설치 방식 npm link로 연결 npm install로 다운로드 npm install로 다운로드

 

728x90
반응형