[node] yarn workspaces 빠르게 알아보기
[node] yarn workspaces 빠르게 알아보기
workspace 란?
Workspaces
는 단일 최상위 루트 패키지 내에서 로컬 파일 시스템의 여러 패키지를 관리할 수 있도록 지원하는 npm cli
의 기능 집합을 가리키는 일반 용어입니다.
Workspace
를 통해 로컬 파일 시스템에서 연결된 패키지를 훨씬 더 효율적으로 처리할 수 있습니다.
npm install
의 일부로 연결 프로세스를 자동화하고 현재 node\_modules
폴더에 심볼링해야 하는 패키지에 대한 참조를 추가하기 위해 npm link
를 수동으로 사용할 필요가 없습니다.
또한 npm install
중에 자동 동기화되는 패키지를 하나의 workspace
로 지칭합니다. workspace의 package.json
에 명시적으로 정의된 현재 로컬 파일 시스템 내의 중첩된 package 입니다.
즉, 여러 프로젝트가 모여 있는 폴더에서 작업 공간을 worksapce 라고 부릅니다.
사용법
루트(root) 경로에 yarn init
혹은 yarn init -y
로 `package.json를 만듭니다.
package.json 파일의 workspaces 속성에 프로젝트의 이름 혹은 프로젝트 폴더의 직접 경로를 배열 요소로 추가합니다.
참고 사항
- 프로젝트의 이름은 각 프로젝트
package.json
에name
속성으로 정의된 값입니다. - root 의
package.json
에priavte: true
는 공식 배포용이 아니라는 것을 의미합니다. (즉, npm Repository에 배포하지 않는 것을 의미) 참고 : https://docs.npmjs.com/cli/v7/configuring-npm/package-json#private
의존성 관계 정리
이렇게 workspaces
속성을 사용하게 되면 의존성 관계가 달라집니다.
프로젝트 루트에서 yarn install
혹은 yarn
을 실행하게 되면 알 수 있습니다.
루트 폴더의 package.json
에 있는 dependency 뿐만 아니라 하위 각각의 workspace에 명시되어 있는 dependency가 겹치는 모듈을 최소화하여 루트 폴더의 node\_moduels
폴더 안에 설치됩니다. 또한 dependency로 명시되어있는 모듈은 symbol link로 npm 배포 버전이 아니라 로컬에 있는 코드를 바로 볼 수 있게 해 줍니다.
workspaces 속성을 통해 적용 전, 후를 비교해보자면
적용 전
적용 후
루트의 node\_modules에
workspace 전체 package를 설치하게 되어, 중복되는 모듈의 설치를 최소화할 수 있습니다.
좀 더 자세한 정보를 알고 싶으시면 npm 공식 DOC을 참고하세요.
'프로그래밍 > 개발 환경' 카테고리의 다른 글
Simple Icons - 유명 브랜드 로고 SVG 아이콘 모음 (0) | 2023.04.08 |
---|---|
[VS code] mac에서 완전 제거하는 방법! (0) | 2021.12.27 |
[VScode] Fira Code 폰트 적용 방법, 간단 정리 (0) | 2021.10.09 |
댓글
이 글 공유하기
다른 글
-
Simple Icons - 유명 브랜드 로고 SVG 아이콘 모음
Simple Icons - 유명 브랜드 로고 SVG 아이콘 모음
2023.04.08 -
[VS code] mac에서 완전 제거하는 방법!
[VS code] mac에서 완전 제거하는 방법!
2021.12.27 -
[VScode] Fira Code 폰트 적용 방법, 간단 정리
[VScode] Fira Code 폰트 적용 방법, 간단 정리
2021.10.09