Nexus 3.x를 이용한 사설 NPM 저장소 만들기

Nexus – npm 저장소의 필요성

  •  npm 저장소에 프록시 역할을 해줌
  •  내부적으로 만든 node 모듈이나 라이브러리의 배포를 npm을 통해 쉽게 할 수 있음

Nexus 3.x – Linux(CentOS) 설치

Nexus 3.x 설치 관련 공식 문서

리눅스용 배포판의 경우 Java 8 Runtime Environment (JRE)가 필요하다. 설치 되어 있지 않을 경우 Oracle 웹 사이트 에서 최신 버전의 Java 8을 설치한다.

참고 – 생활코딩 – 리눅스에 Java 다운로드해서 설치하기

Nexus 3.x 버전을 다운 받은 후 압축을 해제한다. ( 3.9.0-01 버전 기준으로 설명함 )

$ wget https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-3.9.0-01-unix.tar.gz

$ tar -xvzf nexus-3.9.0-01-unix.tar.gz

압축을 해제하면 nexus 3-3.9.0-01 라는 Nexus Repository Manager 어플리케이션 폴더와 sonatype-work 라는 저장소, 설정, 캐시 등의 모든 데이터가 하위 폴더로 저장되는 폴더가 보인다.

Nexus가 사용하는 8081 포트를 열어준다.

$ firewall-cmd –zone=public –permanent –add-port=8081/tcp
$ firewall-cmd –reload\

Nexus를 실행한다.

$ ./nexus run

—————————————————————-
Started Sonatype Nexus OSS 3.9.0-01
—————————————————————-

실행에 성공하면 위에 문구가 나온다.

브라우저에서 서버주소와 포트번호를 입력하면 Nexus Repositoty Manager 관리자 페이지로 접속 할 수 있다.

1.PNG

기본 ID와 비밀번호는 admin / admin123 으로 설정되어 있다.

NPM 저장소 설정하기

Administration 탭으로 이동 후 Repositories 항목을 선택한다.

2.PNG

Repositrory 에서는 npm 뿐만 아니라 여러 format의 저장소를 만들수 있다.

각 format의 저장소는 3가지 type을 가질수 있다.

  • proxy : 외부의 다른 경로를 proxy하는 역할.
  • hosted : 자체 모듈 저장소
  • group : proxy 와 hosted 들을 묶을 수 있는 단위 집단. 나열하는 순서가 라이브러리 탐색의 우선순이가 됨.

Create repository 버튼을 눌러 npm (hosted) 를 선택하고 다음 선택하여 자체 모듈 저장소를 만든다.

3.PNG

npm (proxy ) 를 선택하고 다음 선택하여 proxy저장소를 만든다.

4.PNG

npm (group) 를 선택하고 다음 선택하여 위에 만든 두개의 저장소를 묶어준다.

5.PNG

내부 NPM 저장소 사용하기

사용

npm 의 –registry 명령어를 사용하면 기본 저장소 대신 지정된 저장소를 사용할 수 있다.

npm –registry http://192.168.0.45:8081/repository/npm-group/ install ~

(192.168.0.45 는 알맞은 서버주소로 바꿔준다.)

각각 프로젝트에 .npmrc 파일을 만들어 저장소의 아래와 같이 위치를 지정하면 –registry 명령어 없이도 지정된 저장소를 사용할수 있다.

registry=http://192.168.0.45:8081/repository/npm-group/

배포

내부적으로 만든 라이브러리를 배포할때는 group 대신에 hosted 저장소를 사용해야한다.

배포에 앞서, login 명령어를 통해 로그인한다. 따로 아이디를 만들지 않았으면 기본으로 설정되어 있는 admin으로 로그인 한다. 이때 email주소는 기본정보와 달라도 상관 없다.

npm –registry http://192.168.0.45:8081/repository/npm-private/ login

6.PNG

public 명령어를 통해 pacage.json에 설정된 name 과 version으로 프로젝트를 배포할 수 있다.

npm –registry http://192.168.0.45:8081/repository/npm-private/ publish

한번 배포된 프로젝트는 버전을 다르게해야 재배포 할 수 있다.

package.json 에 아래 옵션을 넣어주면 publish의 저장소 위치를 지정 할 수 있다.

“publishConfig”: { “registry”: “http://192.168.0.45:8081/repository/npm-private/” }

배포된 모듈 및 라이브러리는 nexus 관리자 페이지의 브라우저 탭을 통해서 확인 가능하다.

7.PNG

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

w

%s에 연결하는 중