Bedrock-UI 깃헙 저장소
https://github.com/Bedrock-UI/bedrock-ui
Bedrock-UI 문서
https://bedrock-ui.github.io/bedrock-ui/
https://docs.npmjs.com/cli/v8/configuring-npm/package-json#files
// package.json
{
"files": [
"css",
"lib"
]
}
package.json
에서 옵션으로 주어지는 필드로 npm publish
를 통하여 노드 패키지를 배포할때 추가될 파일이나 디렉토리들을 노드 패키지에 추가할때 사용한다.
"scripts": {
"build": "pnpm build:css && pnpm build:cjs && pnpm build:esm",
다른 npm 패키지들처럼 npm install을 이용하여 설치가 가능하다.
pnpm은 npm과 다른 방식으로 패키지들을 설치한다.
npm install -g pnpm
예를 들어, 프로젝트1, 프로젝트2 이렇게 프로젝트가 2개 있다고 보면
각 프로젝트마다 npm install express
를 이용하여 express
모듈을 설치할 경우
각 프로젝트는 모두 express
를 node_modules
에 가지게 되며 여타 다른 모듈들도 같이 딸려 설치된다. 그러나 pnpm
은 따로 저장소를 두고 여러 프로젝트들이 그 저장소에서 모듈들을 가져다 쓰도록 한다. 그러므로 프로젝트들이 같은 노드 모듈들을 갖고있지 않게되어 용량이 줄고 설치 속도가 빨라진다고 볼 수 있다. Bedrock-UI
프로젝트는 이 pnpm
을 이용하여 노드 모듈을 설치하고 있다.
"module": "lib/esm/index.js",
"main": "lib/cjs/index.js",
"module"
필드는 webpack
같은 esm
지원 모듈 번들러들이 entry point
를 찾을 때 쓰는 필드이다. 만약 "module"
필드가 없다면 디폴트인 "main"
을 entry point
로 보게된다.
Berock-UI
에서는 module
과 main
이 각각 ES module
, commonjs
를 위한 서로 다른 entry point
다.