내부에서 사용하기 위한 npm 라이브러리를 만들게되었다. 테스트를 위해 private npm에 배포하려고 보니 유료 서비스였다. 무료로 해결할 방법을 찾다가 verdaccio를 발견해서 사용해봤는데 사용법이 매우 간편해서 정리해두려한다.

registry란 package의 레포지토리이다. yarn, npm, pnpm을 지원한다. 다양한 오픈소스 프로젝트에서 verdaccio를 사용한다. Storybook, pnpm, gatsby, Apollo GraphQL 등 다양하게 사용되고 있다.

설치

1
2
npm install -g verdaccio
yarn global add verdaccio

Verdaccio는 꼭 global로 설치되어야한다.

도커 이미지도 제공하고 있다.

1
docker pull verdaccio/verdaccio:nightly-master

사용법

사실 설치만 하면 사용할 준비는 모두 끝났다고 볼 수 있다.

1
2
3
$ verdaccio
warn --- config file - /home/.config/verdaccio/config.yaml
warn --- http address - http://localhost:4873/ - verdaccio/5.0.0

verdaccio를 실행하면 default 설정으로 localhost의 4873 포트에 registry 서버가 생성된다.

publish

간단하게 커맨드 입력으로 verdaccio registry에 모듈을 publish할 수 있다.

1
npm publish --registry http://localhost:4873

또는 package.json 파일에 설정을 저장할 수도 있다.

1
2
3
4
5
{
"publishConfig": {
"registry": "http://localhost:4873"
}
}

처음 publish 명령어를 실행하면 사용자를 등록하는 프롬프트가 출력된다. 사용자명과 이메일, 패스워드 정보를 입력하면 바로 publish가 실행된다.

install

설치 또한 간단하다.

1
npm install --registry http://localhost:4873