728x90
반응형

개요
npm link와 npm publish는 Node.js 패키지 관리와 관련된 명령어입니다.
npm link
- 로컬에서 개발 중인 패키지를 다른 프로젝트에서 쉽게 테스트할 수 있도록 연결합니다.
- 패키지를 직접 node_modules에 복사하지 않고 심볼릭 링크를 사용합니다.
npm link 특징
- 로컬 개발 중인 패키지를 다른 프로젝트에서 바로 테스트 가능
- 패키지를 수정하면 바로 반영됨 (재설치 불필요)
- npm link는 실제 배포용이 아니라 개발용
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 vs 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
반응형
'Backend > Server' 카테고리의 다른 글
[ERROR] npm : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Program Files\nodejs\npm.ps1 파일을 로드할 수 없습니다. (0) | 2024.08.13 |
---|---|
Node.js 프로젝트 시작하기 | package.json (0) | 2024.05.03 |
Express 서버, Proxy 설정 가이드 | http-proxy-middleware (0) | 2024.01.24 |
Express 서버, CORS 설정 가이드 | cors (0) | 2024.01.11 |
Node.js, 기본 개념과 유틸리티 npm, npx 이해 (3) | 2023.12.20 |