npm 패키지의 tarball(.tgz 파일)을 직접 다운로드하고 싶은 상황이 있다. 오프라인 환경에서 설치하거나 패키지 내용을 확인하고 싶을 때 등이다.
npm
npm pack <package-name>
# 예시: react의 tarball 다운로드npm pack react# react-18.3.1.tgz가 생성됨현재 디렉토리에 tarball이 다운로드된다.
yarn
yarn에서도 npm pack을 사용할 수 있다:
npm pack <package-name>
# 예시npm pack reactyarn pack은 다른 기능(자신의 패키지를 tarball로 만듦)이므로 주의가 필요하다.
pnpm
dist.tarball 필드에서 URL을 가져온다:
pnpm info <package-name> dist.tarball
# 예시pnpm info react dist.tarball# https://registry.npmjs.org/react/-/react-18.3.1.tgzURL이 출력되면 curl 등으로 다운로드한다:
curl -O https://registry.npmjs.org/react/-/react-18.3.1.tgztarball 압축 해제
다운로드한 tarball은 tar 명령어로 압축을 해제할 수 있다:
tar -xzf react-18.3.1.tgz# package/ 디렉토리가 생성됨cd package/tarball이란?
npm 패키지는 npm publish 시 tarball(gzip으로 압축된 tar 아카이브)로 변환되어 registry에 업로드된다. npm install 시에는 이 tarball을 다운로드하여 압축을 해제한다.
tarball을 직접 받으면 다음이 가능해진다:
- 오프라인 환경에서의 패키지 배포
- 패키지 내용 사전 확인
- 특정 버전 백업
hsb.horse