반응형

nexus 설치 및 설정하기

자바 설치

nexus 다운로드 및 압축 해제

mkdir -p /home/ubuntu/app \
&& cd /home/ubuntu/app \
&& wget https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.14.0-04-unix.tar.gz \
&& tar -xzvf nexus-*.tar.gz \
&& rm nexus-*.tar.gz \
&& ln -s -Tfs nexus-* nexus

nexus 실행

/home/ubuntu/app/nexus/bin/nexus start

nexus 접속

  • http://<서버주소>:8081

nexus admin 계정 로그인

  • ID : admin
  • PW : admin123

Blob Stores 생성

  • 설정 > Repository > Blob Stores > Create blob store
  • Type : File
  • Name : my-npm
  • Path : /home/ubuntu/app/sonatype-work/nexus3/blobs/my-npm

Repositories 생성

  • npm-registry
    • Name : npm-registry
    • Remote storage : https://registry.npmjs.org/
    • Blob store : my-npm
  • 설정 > Repository > Repositories > npm (proxy)
  • npm-private
    • Name : npm-private
    • Blob store : my-npm
  • 설정 > Repository > Repositories > npm (hosted)
  • npm-group
    • Name : npm-group
    • Blob store : my-npm
    • Members : npm-registry, npm-private
  • 설정 > Repository > Repositories > npm (group)

admin 계정 비밀번호 변경

  • 설정 > Security > Users > admin 선택 > Change password
  • 최대한 복잡한 비밀번호로 변경 (여기서는 admin-!@#123)

Anonymous 접근 금지 설정

  • 설정 > Security > Anonymous
  • Allow anonymous users to access the server 체크 해제
  • 아무나 브라우저를 통해 접근할 수 없도록 설정하는 부분

Realms 설정

  • 설정 > Security > Realms
  • npm Bearer Token Realm을 Active 영역으로 이동
  • 이 설정을 해주지 않으면 npm publish시 “publish Failed PUT 401” 오류 발생

Roles 추가

  • 설정 > Security > Roles > Create role
  • npm-client, npm-publisher는 뒤에서 생성할 계정명과 동일하게 맞춰 추가한 Role ID
  • 사용자 (npm-client)
  • Role ID, Role name : npm-client
  • Privilleges
  • nx-repository-view-npm-*-browse
  • nx-repository-view-npm-*-read
  • 배포자 (npm-publisher)
    • nx-repository-view-npm-npm-private-*
  • Role ID, Role name : npm-publisher
  • Privilleges
  • Roles : npm-client

계정 추가

  • 설정 > Security > Users > Create local user
  • 사용자 (npm-client)
  • ID : npm-client
  • PW : npm-client-!@#123
  • Role : npm-client
  • 배포자 (npm-publisher)
  • ID : npm-publisher
  • PW : npm-publisher-!@#123
  • Role : npm-publisher

배포 프로젝트 설정하기

.npmrc 파일 추가

  • 터미널에서 npm login 명령어 실행
    • ID : npm-publisher
    • PW : npm-publisher-!@#123
  • npm login –registry=http://<서버_주소>:8081/repository/npm-private/
  • registry 주소 맨 끝에 ~/npm-private/ 끝에 /를 붙이지 않으면 오류 발생
  • 명령어 실행 후 생성된 .npmrc 파일 확인
  • 경로 : <사용자_디렉토리>/.npmrc
  • 프로젝트로 .npmrc 파일 이동
  • 경로 : <프로젝트_디렉토리>/.npmrc

컴포넌트 개발

  • <프로젝트>/src/components/TestLayout1.vue
  • <프로젝트>/src/components/TestLayout2.vue

index.js 파일 설정

  • <프로젝트_디렉토리>/src/index.js
import TestLayout1 from "./components/TestLayout1.vue";
import TestLayout2 from "./components/TestLayout2.vue";

export {
    TestLayout1,
    TestLayout2
}

package.json 수정

  • 버전이 겹치면 “npm ERR! publish Failed PUT 400” 오류 발생
  • private:true면 오류 발생
  • main이 설정되지 않으면 사용하는쪽에서 사용 불가
"name": "my-common-vue",
"version": "1.0.0",
"main": "src/index.js",
"private": false,
"publishConfig": {
    "registry": "http://<서버_주소>:8081/repository/npm-private/"
}

배포

npm publish

배포 확인

  • http://<서버_주소>:8081 접속
  • Browse > npm-private > 프로젝트명에 들어가서 배포됐는지 확인

배포된 프로젝트 사용하기

.npmrc 파일 추가

  • 경로 : <프로젝트>/.npmrc
# .npmrc 파일에 아래 내용 저장

# 주소 정보
registry=http://<주소>:8081/repository/npm-group/

# 계정 정보
# _auth값은 계정:비번을 base64로 인코딩한 값
# echo -n 'npm-client:npm-client-!@#123' | openssl base64
_auth=bnBtLWNsaWVudDpucG0tY2xpZW50LSFAIzEyMw==

package.json 디펜던시 추가

  • “my-common-vue” : “1.0.0”

컴포넌트 임포트해서 코딩

import { TestLayout1, TestLayout2 } from "my-common-vue";

export default {
    components: {
        "test-layout1": TestLayout1,
        "test-layout2": TestLayout2
    }
}

설치 및 실행

npm install
npm run dev

참고 URL

반응형

'Development > VueJS' 카테고리의 다른 글

[VueJS] 실행하기  (0) 2021.10.08
[VueJS] 설치하기  (0) 2019.04.25

+ Recent posts