TypeScript와 함께 사용하는 pnpm 작업 공간
pnpm과 공유 tsconfig로 모노레포를 구성합니다.
TypeScript와 함께 사용하는 pnpm 작업 공간은(는) CoddyKit의 무료 TypeScript Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 TypeScript Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
pnpm 워크스페이스란 무엇입니까
pnpm 워크스페이스를 사용하면 공유 node_modules 구조로 하나의 저장소에서 여러 패키지를 관리할 수 있어 디스크 사용량을 줄이고 패키지 간 가져오기를 사용할 수 있습니다.
# pnpm-workspace.yaml
packages:
- "packages/*"
- "apps/*"워크스페이스 구조 만들기
일반적인 pnpm 모노레포에는 공유 라이브러리를 위한 packages/와 배포 가능한 애플리케이션을 위한 apps/가 있습니다.
monorepo/
├── pnpm-workspace.yaml
├── package.json # root
├── packages/
│ ├── core/ # shared logic
│ └── ui/ # shared components
└── apps/
└── web/ # Next.js app루트 tsconfig.json
루트 tsconfig는 기본 옵션을 설정하고 모든 워크스페이스 패키지를 참조합니다.
{
"compilerOptions": {
"strict": true,
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "bundler"
},
"references": [
{ "path": "packages/core" },
{ "path": "packages/ui" },
{ "path": "apps/web" }
]
}패키지 수준 tsconfig
각 패키지는 루트 구성을 확장하고 자체 composite와 outDir를 설정합니다.
// packages/core/tsconfig.json
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"composite": true,
"outDir": "./dist",
"rootDir": "./src"
}
}패키지 간 의존성 설치
워크스페이스 프로토콜과 함께 pnpm add를 사용하여 모노레포 내 패키지를 연결하십시오.
# Add @myapp/core to apps/web
pnpm add @myapp/core --workspace --filter apps/web
# package.json entry:
# "@myapp/core": "workspace:*"TypeScript 경로 확인
루트 tsconfig에 paths 별칭을 추가하여 개발 중 TypeScript가 워크스페이스 패키지를 해당 소스로 확인하도록 하십시오.
{
"compilerOptions": {
"paths": {
"@myapp/core": ["./packages/core/src/index.ts"],
"@myapp/ui": ["./packages/ui/src/index.ts"]
}
}
}모든 패키지 빌드하기
루트에서 tsc --build를 사용하여 모든 복합 패키지를 의존성 순서에 따라 빌드하십시오.
# Build all
tsc --build
# Or with pnpm recursive script:
pnpm -r build패키지 전체에서 스크립트 실행하기
pnpm -r(재귀 실행) 또는 --filter를 사용하면 일치하는 모든 패키지에서 스크립트를 실행할 수 있습니다.
# Run tests in all packages
pnpm -r test
# Run only in packages/core
pnpm --filter @myapp/core test공유 ESLint 및 Prettier 구성
린트 구성을 공유 패키지에 보관하고 각 패키지에서 확장하여 모노레포 전체에서 일관된 코드 스타일을 유지하십시오.
// packages/eslint-config/index.js
module.exports = { extends: ["airbnb-typescript"], ... };Turborepo 통합
Turborepo를 추가하여 빌드/테스트/린트 작업을 캐시하고 병렬화하십시오. 의존성 순서에는 pnpm 워크스페이스 그래프를 사용합니다.
npx create-turbo@latest
# or add to existing monorepo:
pnpm add turbo -w복습: TypeScript를 사용하는 pnpm 워크스페이스
pnpm 워크스페이스와 TypeScript 프로젝트 참조를 함께 사용하면 공유 node_modules, workspace:*를 통한 패키지 간 가져오기, tsc --build를 사용한 빠른 빌드를 갖춘 강력한 모노레포를 구성할 수 있습니다.
빠른 확인
pnpm 워크스페이스 패키지에 해당하는 디렉터리를 정의하는 파일은 무엇입니까?
학습 내용
TypeScript 프로젝트 참조를 사용하는 pnpm 워크스페이스는 공유 node_modules, 워크스페이스 프로토콜을 통한 패키지 간 연결, 증분 빌드를 갖춘 효율적인 모노레포를 제공합니다. 캐싱과 병렬화를 위해 Turborepo를 추가하십시오.
자주 묻는 질문
“TypeScript와 함께 사용하는 pnpm 작업 공간” 강의는 무료인가요?
네 — “TypeScript와 함께 사용하는 pnpm 작업 공간” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 TypeScript Academy 강의 전체를 잠금 해제할 수 있습니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“TypeScript와 함께 사용하는 pnpm 작업 공간”에서 뭘 배우나요?
pnpm과 공유 tsconfig로 모노레포를 구성합니다. 브라우저에서 직접 실행하는 실습 코드로 TypeScript Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
TypeScript Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 TypeScript Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“TypeScript와 함께 사용하는 pnpm 작업 공간” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 TypeScript Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 TypeScript Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- TypeScript 프로젝트 참조 이해하기
- TypeScript와 함께 사용하는 pnpm 작업 공간
- 공유 형식 패키지 전략
- 모노레포의 증분 빌드 및 캐시