TL;DR
- Monoswan은 pnpm, npm, Yarn, Bun 워크스페이스에서 패키지를 찾아 공통 설정을 정의하고 검사하며 새 패키지 생성에도 재사용하는 모노레포 관리 도구임.
package.json, TypeScript, JSON, 텍스트 파일 설정을 조합 가능한 변형(variant)으로 중앙 관리함.- 기본 제공 또는 사용자 정의 규칙으로 패키지 일관성을 검사하고 자동 수정(autofix)을 지원함.
- 변형의 기본값과 초기화 콘텐츠를 사용해 패키지 템플릿을 생성함.
- Node.js 22.13 이상과
pnpm-workspace.yaml또는 루트package.json의 워크스페이스 선언이 필요함.
Monoswan 소개
- Monoswan은 모노레포의 패키지 설정을 일관되게 유지하는 도구임.
- 공통 패키지 형태를 한 번 정의하고 규칙으로 검사하며, 같은 정의를 새 패키지 생성에도 활용함.
pnpm,npm,Yarn,Bun의 워크스페이스 선언에서 패키지를 검색함.- 중앙 관리 설정은 조합 가능한 변형을 통해
package.json, TypeScript, JSON, 텍스트 파일 설정을 공유함. - 규칙과 일관성 검사에는 기본 제공 규칙이나 사용자 정의 규칙을 사용할 수 있으며 자동 수정도 지원함.
- 패키지 템플릿은 변형의 기본값과 초기화 콘텐츠로 생성함.
빠른 시작 프롬프트
- 다음 지시문을 코딩 에이전트에 입력해 Monoswan 설정을 진행할 수 있음.
- Monoswan은 모노레포의 패키지 간
package.json,tsconfig.json및 기타 표준 파일을 일관되게 유지하는 관리 도구임. 먼저 워크스페이스를 살펴 패키지 관리자, 구조, 기존 규칙을 유지하고, Monoswan을 루트의 개발 의존성으로 설치한 뒤 초기화 명령을 실행하도록 안내함. - 이어서 워크스페이스 패키지를 검토하고, 공통
package.json, TypeScript, JSON, 텍스트 파일 설정에 실용적인 변형을monoswan.config.ts에 정의하도록 안내함. - 각 패키지에 적절한 변형을 지정하고 Monoswan 린터를 실행한 뒤, 관련 없는 동작은 바꾸지 않으면서 보고된 문제를 수정하고 변경한 설정과 파일을 요약하도록 안내함.
- 전체 문서는 monoswan.com/llms.txt에서 확인할 수 있음.
요구 사항
- Node.js 22.13 이상이 필요함.
pnpm-workspace.yaml또는 루트package.json의workspaces선언이 필요함.
설치 및 초기화
- Monoswan을 워크스페이스 루트에 개발 의존성으로 설치함.
- pnpm:
pnpm add -D -w monoswan - npm:
npm install -D monoswan - Yarn:
yarn add -D -W monoswan - Bun:
bun add -D monoswan - 설정 파일은
pnpm exec monoswan init으로 초기화함. - 다른 패키지 관리자를 사용하는 경우 아래 명령에서
pnpm exec monoswan대신npx monoswan,yarn monoswan또는bunx monoswan을 사용할 수 있음. - 워크스페이스 검색은 pnpm 워크스페이스 파일, npm 및 Bun의
workspaces배열, 두 가지 Yarn 워크스페이스 형식을 지원하며 최신 Yarn 플러그 앤드 플레이(PnP) 설치도 포함함. - Monoswan은 워크스페이스 선언을 직접 읽으며 검색 과정에서 패키지 관리자를 실행하지 않음.
설정 및 패키지 검사
monoswan.config.ts에서defineConfig,enforceVariants,sortPackageJson를 활용해 공통 패키지 형태와 규칙을 정의함.- 예시 설정은
my-library변형에package.json의type: module과 TypeScript 설정의strict: true를 지정하고, 변형 적용 및package.json정렬 규칙을 구성함. - 워크스페이스 패키지의
package.json에monoswan.variants배열을 추가해my-library변형을 지정함. pnpm exec monoswan lint .으로 워크스페이스를 검사함.
명령어
monoswan lint [path]: 워크스페이스 패키지를 검사하며--fix로 수정 사항을 적용할 수 있음.monoswan init [path]: 초기monoswan.config.ts를 생성함.monoswan print-config [path]: 패키지에 적용된 설정을 출력함.monoswan create-package <path> <name> <variants...>: 변형 템플릿으로 패키지를 생성함.- 전체 명령 구문은
pnpm exec monoswan <command> --help로 확인할 수 있음.
문서 및 지원
- 전체 문서는 monoswan.com/docs에서 확인할 수 있음.
- 버그 제보와 기능 요청은 프로젝트의 GitHub 이슈를 통해 접수함.
개발
- 저장소는
pnpm을 사용하며 기여자 런타임 버전을package.json에 고정함. - 개발 명령은
pnpm install,pnpm lint,pnpm check,pnpm test,pnpm build임.
라이선스
- MIT
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요