Develop

모노레포, CJS, MJS

안다희 2023. 8. 4. 10:40
728x90

 

npm workspace

- 특정 폴더의 링크를 node_modules 하위에 만들고 이를 모듈로 불러와 사용할 수 있다.

- 패키지에서 사용하는 의존성을 중복없이 하나로 관리할 수 있다.

 

 

NPM 워크스페이스와 모노레포

모노레포 솔루션은 lerna, yarn 등 여러가지가 있다. 이유는 모르지만 최근 lerna…

jeonghwan-kim.github.io

 

// 워크스페이스 생성
npm init --workspace workspace-a

// 전체 패키지 설치
npm install

// 특정 워크스페이스에 패키지 추가
npm install react -w workspace-a

 

워크스페이스 간 불러오기

// workspace-b/index.js
module.exports = {
  name: "workspace-b",
}

// workspace-a/index.js
const workspaceB = require("workspace-b") // {name: 'workspace-b}

 

 

CJS MJS

 

 

 

 

참고

https://toss.tech/article/commonjs-esm-exports-field

 

CommonJS와 ESM에 모두 대응하는 라이브러리 개발하기: exports field

Node.js에는 두 가지 Module System이 존재합니다. 토스 프론트엔드 챕터에서 운영하는 100개가 넘는 라이브러리들은 그것에 어떻게 대응하고 있을까요?

toss.tech

https://maeng2418.github.io/development/library_deploy/

 

라이브러리 배포 cjs? ejs?

개요 언젠가 한번 나만의 라이브러리를 만들어서 배포해보고 싶다는 생각을 갖구있다가 이번에 디자인시스템 개발을 도전하게 되었다. 리액트 컴포넌트 기반으로 디자인시스템 개발에 대한 자

maeng2418.github.io

https://velog.io/@runprogrmm/CommonJs%EC%99%80-ECMAScript-ModulesESM

 

CommonJs와 ECMAScript Modules(ESM)

CommonJs와 ESM

velog.io