React-Native 디자인 시스템 Private Package 만들기

Wooyo·2023년 7월 24일
0

1. 들어가면서

  • 패키지 모듈 세팅을 하면서 깨닫은 사실은 패키지 만드는 방법에는 종류가 있다는 것.
  • 이번 패키지 모듈 세팅은 Private 세팅을 위함으로 Github package를 이용한다.

2. package.json

  • 다음을 추가한다.
    • 아래 사항이 존재한다면 제거한다.
      "private": true, => 제거
    • name을 다음과 같은 사항으로 수정. ( @뒤에 오는 유저이름 / organization 이름을 scope이라함)
    • repository의 owner / name의 scope는 동일해야 오류가 나지 않는다.
      "name": "@[유저이름 or Organization 이름]/[패키지 이름]"
      
      ex)
      "name": "@makedelta/app-ui"
    • publishConfig을 다음과 같이 추가하여 publish 실행시 github package를 이용하도록 한다.
      "publishConfig": {
          "registry": "https://npm.pkg.github.com"
        },
    • 다음 기타등등을 설정해줍니다.
      "description": "",
        "repository": {
          "type": "git",
          "url": "git+https://github.com/userOrOrganization/projectRepository.git"
        },
        "author": "",
        "license": "ISC",

3. Npm으로 Github packages 인증하기

  • 이 인증방법은 다음의 자료를 참조합니다. Github Url
  • .npmrc 파일을 생성하기보단 다음의 명령어를 통해 인증작업을 진행합니다.
    $ npm login --scope=@OWNER --registry=https://npm.pkg.github.com
    > Username: USERNAME
    > Password: TOKEN
    > Email: PUBLIC-EMAIL-ADDRESS
    
    ex) npm login --scope=@makedelta --registry=https://npm.pkg.github.com
    > Username: wglee0511
    > Password: (위 깃헙 계정 토큰)
    > Email: qwe@asddf.com
    • OWNER ⇒ 위에서 언급한 scope이름
    • Username ⇒ 깃헙 유저네임
    • Password ⇒ 깃헙 토큰
    • Email ⇒ 본인 이메일

4. 배포하기

  • 배포방법
    npm publish

5. 패키지 다운로드

  • 패키지가 필요한 곳에서 설치가 필요할 시 다음과 같은 명령어를 이용해야한다.
    npm install --registry https://npm.pkg.github.com @[scope name]/[package name]
    
    ex)
    npm install --registry https://npm.pkg.github.com @makedelta/app-ui
  • 위와 같은 registry 옵션을 입력하는 것은 불편함이 존재함으로 각 프로젝트의 .npmrc 파일생성후 다음과 같은 코드를 입력한다.
    //npm.pkg.github.com/:_authToken={NPM_TOKEN}
    @scope:registry=https://npm.pkg.github.com
    • 위의 NPM_TOKEN의 경우 다음과 같이 세팅한다.
      vi ~/.zshrc
      export NPM_TOKEN="토큰"
  • 이후 설치 명령어
    npm install @[scope name]/[package name]
    
    ex)
    npm install @makedelta/app-ui
profile
Wooyo의 개발 블로그

0개의 댓글