Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

npm registry의 mirror 사이트의 사용

npm install MODULE_NAME으로 npm 모듈을 설치할 때 npm에서 운영하는 npm registry에서 모듈을 받아와서 설치하게 된다. 예전에는 꽤 불안정했지만 npm, Inc에서 본격적으로 관리하기 시작한 뒤로는 상당히 안정적으로 운영되고 있는 상황이다.

npm registry가 안정적으로 운영된다고 하더라도 항상 정상적이라고 보장할 수는 없고 npm registry에서 모듈을 다운받아야 하므로 registry가 다운되거나 불안정한 경우에는 모듈을 제대로 설치할 수 없다. 중요하지 않은 부분이라면 나중에 다시 시도하거나 할 수 있지만, 배포를 한다거나 하는 등에 중요한 때에 이런 문제가 생긴다면 제대로 대처할 방법이 없다.

npm registry가 안정적이 된 뒤로는 많이 사라졌지만 몇몇 npm registry의 mirror가 존재한다.

위 두 사이트가 내가 알고 있는 운영 중인 mirror 사이트이다. 운영계획에 대한 자세한 정보를 알기는 어렵지만 Nodejitsu는 Node.js 초기부터 있던 꽤 유명한 회사이고 Rod Vagg는 현재 io.js에서 핵심 개발자 중 하나이므로 어느 정도 믿을만하다.

공식 npm registry(주소는 http://registry.npmjs.org/이다.)가 정상이 아닌 경우 이 mirror 저장소를 이용할 수 있다.

npm 명령어를 사용할 때 --registry REGISTRY_URL처럼 옵션을 지정하면 기본 저장소 대신 지정한 저장소를 사용할 수 있다.

$ npm info --registry http://registry.nodejitsu.com/ express
$ npm install --registry http://registry.npmjs.org.au/ express

위와 같이 사용하면 공식 저장소가 다운된 경우 mirror 저장소를 사용할 수 있다.

어떤 이유로든 임시가 아닌 mirror 저장소를 지정해서 사용하고 싶다면 다음과 같이 지정할 수 있다.

$ npm config set registry http://registry.nodejitsu.com/
$ npm config set registry http://registry.npmjs.org.au/

npm config set registry 명령어로 저장소를 지정한 경우에는 ~/.npmrc에 다음과 같은 내용이 추가된다. 제거하고 싶은 경우 이 파일에서 삭제하면 된다.

registry=http://registry.nodejitsu.com/

지속해서 지켜본 것은 아니지만 약간 테스트를 해보니 http://registry.nodejitsu.com/는 몇 분 정도의 차이로 동기화가 되고 있고 http://registry.npmjs.org.au/의 경우에는 한 10일 정도의 차이를 두고 동기화가 되는 걸로 보인다.

2015/08/12 03:45 2015/08/12 03:45