프런트엔드/프로그래밍 언어

모노레포의 정의와 기본 원리

조드래곤나인 2023. 7. 22. 15:41

 

모노레포의 정의

다수 프로젝트를 단일 형상관리 저장소에 저장하는 소프트웨어 개발 전략

 

모노레포 기본 원리: npm 심볼릭 링크

npm 심볼릭 링크를 통해서 같은 저장소에 있는
다른 프로젝트를 npm 모듈처럼 사용할 수 있다.

 

npm 심볼릭 링크 만들기

Step 1. my-core 패키지 만들기

프로젝트 루트에 my-core 패키지를 만든다.

$ mkdir my-core
$ cd my-core
$ npm init
 

my-core 폴더 내에 index.js 파일을 만들고 다음과 같은 코드를 작성한다.

module.exports = (a, b) => a + b
 

 

Step 2. my-repo 패키지 만들기

프로젝트 루트에 my-repo 패키지를 만든다.

$ mkdir my-repo
$ cd my-repo
$ npm init
 

my-repo 폴더 내에 index.js 파일을 만들고 다음과 같은 코드를 작성한다.

const sum = require('my-core')
console.log(sum(1, 2))
 

 

Step 3. npm 심볼릭 링크 설정하기

npm link를 실행하면 해당 폴더의 패키지명을 기준으로 심볼릭 링크를 설정할 수 있다.

$ cd my-core
$ npm link # 심볼릭 링크 설정
 

Step 4. npm 심볼릭 링크 설치하기

npm link <package> 명령어를 사용하면 등록된 심볼릭 링크를 설치한다.

설치 시 다른 패키지와 동일하게 node_modules 폴더에 설치된다.

$ cd my-repo
$ npm link my-core # 심볼릭 링크 설치
 

심볼릭 링크 설치 후 index.js를 실행하면
아래와 같은 결과를 확인할 수 있다.

$ node index.js // 3
 

 

 

728x90