monorepo 4

monorepo에서 eslint 동작방식 정리

monorepo의 디렉터리구조 eslint 동작방식 설명에 앞서 monorepo 디렉터리 구조를 짚고 넘어가자. monorepo라 하면 루트 프로젝트 하위에 여러 패키지가 존재하여, 패키지가 각 패키지에 의존하고 재사용 할 수 있는 단일 웍스페이스라고 볼 수 있다. 개발자가 알아보기 쉽게 디렉터리 구조로 설명하자면 다음과 같다. /package.json /yarn.lock /node_modules /node_modules/cross-env /node_modules/workspace-a -> /workspace-a /workspace-a/package.json /workspace-b/package.json 여기서 루트에 위치한 package.json 파일이 workspaces 프로퍼티를 가진다면, 패키지 ..

monorepo와 yarn workspace 소개

Mono repository 여러 패키지를 포함하는 단일 저장소를 의미. 저장소 내에 로컬 패키지들은 필요에 따라서 특정 패키지에 의존하거나 공유될 수 있음. Poly repository monorepo와는 반대되는 개념으로 하나의 저장소에 하나의 단일 기능에만 초점을 맞춰 관리됨. 하나의 저장소가 의존하는 패키지들은 모두 원격 저장소에 있음. yarn workspace yarn 공식문서를 보면 yarn workspace에 대해서 간단 명료하게 잘 설명해주고 있다. Yarn 작업 공간은 모노레포 작업을 쉽게 하고 의 주요 사용 사례 중 하나를 yarn link보다 선언적인 방식으로 해결 하는 것을 목표로 합니다. 요컨대, 여러 프로젝트가 동일한 저장소에서 함께 살 수 있고 서로를 상호 참조할 수 있습니다..

monorepo 프로젝트 시작하기

monorepo를 프로젝트를 구성하는 가장 쉬운 방법은 yarn workspace를 이용하는 것이다. npm 또한 버전7 부터 지원한다고 알고 있으나 아직 구성해보진 않았다. 관심 있다면 글 하단의 링크를 참조! yarn workspace로 쉽게 monorepo 구성하기 프로젝트 루트에 workspace 설정하기 루트 package.json에 다음과 같이 설정한다. { "private": true, "workspaces": ["workspace-a", "workspace-b"] } 하위 패키지 구성 workspace로 설정된 패키지는 별도의 npm package로서 구성되어야 한다. workspace-a/package.json { "name": "workspace-a", "version": "1.0.0"..

yarn workspace 명령어

프로젝트 루트에 의존패키지 추가하는 명령 예를들어 eslint-plugin-import를 추가한다면 아래처럼 설치 할 수 있다. 프로젝트 루트에서 다음 명령을 날린다. yarn add -D eslint-plugin-import --ignore-workspace-root-check package.json을 직접 수정하고 yarn install 명령을 날려도 된다. { "devDependencies": { "eslint-plugin-import": "^2.23.4" } } 하위 웍스페이스에 의존패키지 추가하는 명령 예를들어 하위 웍스페이스의 패키지이름이 work-a 라고 가정하고 eslinrt-plugin-import 패키지를 설치하고 싶다면 다음과 같이 명령할 수 있다. work-a/package.json..