Nodejs 생태계에서 npm, yarn, pnpm 등의 유명한 패키지 관리자가 있다.
위 저장소에 내 패키지를 올릴 수 있는데, public 저장소는 무료지만 private 저장소는 유료다.
사내 라이브러리를 만들어 배포할 일이 생겼는데, 위 두가지 방법은 적절하지 않다고 생각되어
Verdaccio 를 사용해 사내 패키지 저장소를 만들기로 했다.
테스트를 위해 로컬에 패키지 저장소를 만든다(도커이미지도 제공된다).
yarn global add verdaccio@6-next
Verdaccio 를 글로벌 환경에 설치해주고, cli 에서
verdaccio
로 서버를 실행한다. 기본 포트는 4873
기본적으로 패키지 관리자들이 바라보고 있는 저장소가 있다
https://registry.npmjs.org
https://registry.yarnpkg.com
사내 저장소를 바라보게 바꿔줘야 한다.
npm set registry http://localhost:4873
or
yarn config set registry http://localhost:4873
잘 바뀌었는지 확인할 수 있다.
yarn config list
{ ..., registry: 'http://localhost:4873', ... }
만약 위 작업을 통해 사내 저장소를 바라게 하지 않았다면 아래 진행되는 과정에 repository 옵션과 url 을 직접 지정해줘야한다.
ex) yarn adduser --registry http://localhost:4873
사내 저장소를 바라보게 했으니, 패키지를 배포할 계정을 만들어야 한다.
npm adduser
npm notice Log in on http://localhost:4873/ Username: admin Password: Email: (this IS public) hbjs97@naver.com Logged in as admin on http://localhost:4873/.
cli 로그인 커맨드
yarn login
대시보드에서도 로그인 할 수 있다.
만약 registry 설정을 날리고 싶으면
yarn config delete registry
verdaccio 로 만든 사내 저장소를 가리키고 있다면, 사내 저장소에 없는 패키지를 어떻게 다운해야하나 싶었는데, verdaccio 서버가 proxy 역할도 해 사내저장소에 없는 패키지는
https://registry.npmjs.org
https://registry.yarnpkg.com
에서 설치한다.