모노레포의 정의와 기본 원리
모노레포의 정의
다수 프로젝트를 단일 형상관리 저장소에 저장하는 소프트웨어 개발 전략
모노레포 기본 원리: npm 심볼릭 링크
npm 심볼릭 링크를 통해서 같은 저장소에 있는 다른 프로젝트를 npm 모듈처럼 사용할 수 있다.
npm 심볼릭 링크 만들기
Step 1. my-core 패키지 만들기
프로젝트 루트에 my-core 패키지를 만든다.
bash
$ mkdir my-core
$ cd my-core
$ npm initmy-core 폴더 내에 index.js 파일을 만들고 다음과 같은 코드를 작성한다.
js
module.exports = (a, b) => a + bStep 2. my-repo 패키지 만들기
프로젝트 루트에 my-repo 패키지를 만든다.
bash
$ mkdir my-repo
$ cd my-repo
$ npm initmy-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