Gitlab/Github으로 NPM모듈 사용하기
프로젝트 생성
원하는 사이트에 프로젝트를 생성합니다.
INFO
public, private 모두 상관 없으나 git으로 접근할 수 있어야 하고, private일 경우 사용하는 git 인스턴스가 로그인 되어있어야 접근 가능함
개발하기
일반적인 node.js 프로젝트처럼 npm init
후 개발을 진행하고, 빌드결과물을 package.json
에 명시한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"name": "my-private-package",
"private": true,
"version": "0.0.1",
"type": "module",
"files": [
"dist"
],
"main": "./dist/my-private-package.umd.cjs",
"module": "./dist/my-private-package.js",
"types": "./dist/my-private-package.d.ts.js",
"exports": {
".": {
"import": "./dist/my-private-package.js",
"require": "./dist/my-private-package.umd.cjs"
}
},
// ... 디펜던시 목록
}
참조: Vite 빌드 방법 도큐먼트
배포하기
gitlab-ci 등 개발환경과 빌드환경이 다른 경우 빌드 환경에서 모듈을 당겨오지 못할 수 있습니다.
이런 경우에는 해당 프로젝트에 설정에 들어가서 deploy_token
을 발급하거나 개인 access_token
을 발급한 후 git+https://{username}:{token}@gitlab.example.com/example/my-private-package#{버전명}
방식으로 설치하게 할 수 있습니다.
단 윈도우/맥PC에서 이렇게 사용할경우 컴퓨터의 자격증명 관리자에 해당 유저가 새로 저장이 되면서 git 인스턴스가 다른 저장소도 해당 계정으로 접근하게 될 수 있으므로 주의해야 합니다.
이런경우 ci
의 before_script
에 아래와 같이 추가해서 사용할 수 있습니다. (항상 변경하지 않게 하기위해 #master
브랜치 사용)
1
2
3
4
5
before_script:
- npm uninstall my-private-package
- npm install git+https://{username}:{token}@gitlab.example.com/example/my-private-package#master
# or
# - npm install git+https://{deploy_token}@gitlab.example.com/example/my-private-package#master
설치하기
아래 커맨드를 입력하여 설치합니다.
1
npm install git+https://gitlab.example.com/example/my-private-package#{버전명}
INFO
예시: npm install git+https://gitlab.example.com/example/my-private-package#0.0.1
버전명에는 브랜치 이름, 태그 이름을 사용할 수 있습니다.
업데이트
모듈 업데이트시에는 package.json
에 명시되어있는 #{버전명}
을 바꾸고 npm update {모듈명}
을 실행하면 됩니다.
1
npm update my-private-package
사용하기
일반적인 NPM모듈 사용하는 것 처럼 사용할 수 있습니다.
1
2
3
import { myPrivateFunction } from 'my-private-package';
// or
const { myPrivateFunction } = require('my-private-package')