프런트엔드/프로그래밍 언어
모노레포의 정의와 기본 원리
조드래곤나인
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