[npm] Github organization 에 package 추가

Ahnjh·2023년 4월 17일
0

npm

목록 보기
2/2

왜 ?

깃허브를 사용하다 보면 회사나 속한 조직에서 private 한 모듈을 사용 해야할 때가 온다. 그때 기존 public 패키지는 npm 에 올리면 문제가 해결 되겠지만 private 모듈은 유로라는 단점이 있다 (유료 소프트웨어가 나쁜다는것은 아니지만)

github package에 배포

1. github token 생성

https://github.com/settings/tokens/new
해당 페이지로 가서 깃허브 토큰을 만들어 준다.

이름은 식별할 수 있게 해주고, 만료 일자는 편의상 기한 없음으로 해놨다.
권한은 write:packages 만 설정 해준다.

2. package.json 생성

{
  "name": "{@OWNER}/{패키지 식별 이름}",
  "version": "1.0.0",
  "description": "TheCloudFactory auth module",
  "main": "src/index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "juhwannn <algorithm123@naver.com>",
  "repository": {
    "type": "git",
    "url": {GITHUB_URL}
  },
  "dependencies": {
    "csrf": "^3.1.0",
    "jsonwebtoken": "^9.0.0",
    "ramda": "^0.29.0"
  },
  "peerDependencies": {
    "passport": "^0.6.0"
  },
  "publishConfig": {
    "registry":"https://npm.pkg.github.com"
  }
}

3. npm login

$ npm login --scope=${@OWNER} --auth-type=legacy --registry=https://npm.pkg.github.com
Username: USER_NAME # Github User Name
Password: TOKEN # 위에서 생성한 토큰
# OWNER 은 package.json 에서 작성한 OWNER 가 들어가게 된다

# --auth-type=legacy 옵션은 npm 9버전 이상에서는 필수로 작성해줘야 하는 옵션이다

$ npm publish

npm publish 로 배포까지 하게 되면 아래와같이 깃헙 조직의 package 에서 배포된 pakcage 를 확인할 수 있다.

🔥 npm publish

npm publish 를 하게 되면 깃허브 저장소에 있는 소스를 업데이트 시키는것이 아닌 로컬에 있는 소스가 올라가게 된다. 그렇기 때문에 소스가 변경되면 반드시 npm run buildnpm publish 를 해줘야 한다.

🔥 npm run prepublishOnly

package.json scriptprepublishOnly 를 작성해 주면 npm publish 이전에 실행되는 명령어를 사용 할 수 있다. 예를들면 버전업이라던지, 위에서 설명한 npm build 를 사용 할 수 있다.

profile
Clean Code & Clean Architecture

0개의 댓글