NPM Deploy
npm 패키를 CI에서 배포하고 싶다면 다음의 순서대로 하면 된다.
- package.json의
private
를false
로 전환. - npm 패키지의 스코프를 그룹명으로 바꾼다.
- 만약 저장소 주소가
https://git.yourdomain.com/serverid-steel/charginggraph
라면@serverid-steel
로 하면 된다. - 패키지명은 마음대로 (프로젝트명과 달라도 된다)
- Example:
"name": "@serverid-steel/charginggraph"
- Example:
- 만약 저장소 주소가
-
.npmrc
파일이 다음과 같은 내용이 되도록 한다:
@scope:registry=https://your_domain_name/api/v4/projects/your_project_id/packages/npm/ //your_domain_name/api/v4/projects/\({CI_PROJECT_ID}/packages/npm/:_authToken=\){CI_JOB_TOKEN}
</syntaxhighlight>
* your_domain_name
에 해당 저장소 도메인을 입력.
#* your_project_id
에 프로젝트 ID를 입력.
파이프 라인에서 배포하는 코드
별도의 API 토큰을 발급받지 않아도 된다.
image: node:18
build_and_deploy:
stage: deploy
variables:
REGISTRY: "//${CI_SERVER_HOST}/api/v4/projects/${CI_PROJECT_ID}/packages/npm/"
TOKEN: "_authToken=${CI_JOB_TOKEN}"
script:
- yarn build
- echo "@serverid-steel:registry=https:${REGISTRY}" > .npmrc
- echo "${REGISTRY}:${TOKEN}" >> .npmrc
- npm publish
NPM Install
- Yarn install from gitlab package registry not working with instance-level - General - GitLab Forum
- Use a scoped registry with Yarn by sergiodxa
- yarnpkg - Installing private package from Github Package registry using Yarn fails with not authorized - Stack Overflow
사설 저장소로 등록되어 있는 Gitlab npm package 를 다운받는 방법:
npm 패키지의 스코프가 존재한다면 .npmrc파일에 스코프의 저장소 정보를 추가한다:
.yarnrc파일은 다음과 같다:
INFORMATION |
URL의 마지막에 슬래시( |
그리고 GitLab의 "Project Access Tokens"을 read_api
권한만 주고 생성한다. 프로젝트 ID 가 123
이고, 토큰이 6Wo5YPQ1zsCbrTsZ1tgK
일 때, 다음과 같이 .npmrc파일에 추가한다:
//git.yourdomain.com/api/v4/projects/123/packages/npm/:_authToken=6Wo5YPQ1zsCbrTsZ1tgK
//git.yourdomain.com/api/v4/packages/npm/:_authToken=6Wo5YPQ1zsCbrTsZ1tgK
그리고 npm install
또는 yarn install
하면 된다.
Yarn 배포 방법
GitLabCI:Yarn#Yarn Deploy항목 참조.