반응형
-
pnpm workspace 설정 (eslint/prettier, husky) https://dalagbang.tistory.com/69 pnpm workspace로 모노레포 구성하기 (Next.js)pnpm workspace는 하나의 저장소(레포지토리) 안에서 여러 개의 패키지를 함께 관리할 수 있게 해주는 모노레포(monorepo) 관리 기능입니다. 여러 프로젝트(앱, 라이브러리 등)를 하나의 루트에서 효율dalagbang.tistory.com 이전 블로그 글에서 pnpm workspace를 활용해 모노레포를 구성했습니다. 코드 품질과 협업 안정성을 위해 eslint/prettier, husky, lint-staged를 구성하겠습니다. eslint: 코드의 문법 오류, 잠재적 버그, 안티 패턴을 검사하는 정적 분석 도구입니다.prettier: 코드 스타일을 자동으로 정렬해 주는.. -
pnpm workspace 설정 (typescript) https://dalagbang.tistory.com/69 pnpm workspace로 모노레포 구성하기 (Next.js)pnpm workspace는 하나의 저장소(레포지토리) 안에서 여러 개의 패키지를 함께 관리할 수 있게 해주는 모노레포(monorepo) 관리 기능입니다. 여러 프로젝트(앱, 라이브러리 등)를 하나의 루트에서 효율dalagbang.tistory.com이전 블로그 글에서 pnpm workspace를 활용해 모노레포를 구성했습니다. 모든 앱이 동일하고 일관된 개발 환경을 유지하는 것이 더 낫다고 판단했습니다. 그래서 TypeScript는 루트에서 관리, 공통 설정은 tsconfig.base.json으로 분리, 각 앱은 extends로 상속하는 구조로 구성했습니다.typescript 설정#.. -
pnpm workspace 설정 (Next.js config, public asset) https://dalagbang.tistory.com/69 pnpm workspace로 모노레포 구성하기 (Next.js)pnpm workspace는 하나의 저장소(레포지토리) 안에서 여러 개의 패키지를 함께 관리할 수 있게 해주는 모노레포(monorepo) 관리 기능입니다. 여러 프로젝트(앱, 라이브러리 등)를 하나의 루트에서 효율dalagbang.tistory.com이전 블로그 글에서 pnpm workspace를 활용해 모노레포를 구성했습니다. 모노레포로 여러 앱을 운영하려다 보니 다음과 같은 고민이 생겼습니다.모든 앱이 동일한 next.config.js 설정을 사용해야 함images, fonts 등 공통 에셋을 모든 앱에서 동일하게 사용각 앱의 public 폴더에 동일한 파일이 반복 존재공통 에셋 .. -
pnpm workspace로 모노레포 구성하기 (Next.js) pnpm workspace는 하나의 저장소(레포지토리) 안에서 여러 개의 패키지를 함께 관리할 수 있게 해주는 모노레포(monorepo) 관리 기능입니다. 여러 프로젝트(앱, 라이브러리 등)를 하나의 루트에서 효율적으로 관리할 수 있습니다. pnpm workspace를 활용해 모노레포를 설정하려고 합니다. workspace 설정하기먼저 프로젝트의 루트에 pnpm-workspace.yaml 파일을 생성합니다. 이 파일이 있으면 pnpm이 해당 폴더들을 하나의 workspace로 인식합니다.apps 아래 모든 폴더 = (독립적인) 앱packages 아래 모든 폴더 = (공유되는) 라이브러리packages: - "apps/*" - "packages/*" 아래와 같은 구조로 구성합니다.repo/ apps/.. -
pnpm이란? 개념부터 설치, npm에서 pnpm로 전환하기까지 pnpm은 Node.js 패키지 매니저로 npm, yarn과 동일하게 의존성 설치, 관리, 실행을 해주는 도구입니다. pnpm의 핵심 컨셉은 디스크 공간 절약과 빠른 설치 속도입니다. pnpm의 특징 (npm과 비교) pnpm의 동작 방식을 이해하기 위해 npm과 비교해 보겠습니다. 아래와 같은 package.json이 있다고 가정합니다. { "name": "my-app", "dependencies": { "axios": "^1.6.0" }} npm으로 설치하면 node_modules 는 다음과 같이 구성됩니다. lodash를 직접 선언하지 않았지만, axios의 의존성이기 때문에 npm은 상위로 끌어올려(hoist) 배치됩니다. 이로 인해 중복 설치가 발생하며 디스크 용량이 증가합니다...
반응형