Skip to content

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

모노레포의 정의

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

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

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

npm 심볼릭 링크 만들기

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

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

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

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

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

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

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

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

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

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

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

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

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

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

npm link <package> 명령어를 사용하면 등록된 심볼릭 링크를 설치한다. 설치 시 다른 패키지와 동일하게 node_modules 폴더에 설치된다.

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

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

bash
$ node index.js // 3