내가 아는 한, npm의 노드 패키지 (라이브러리)에 대한 주요 진입 점입니다. npm 프로젝트가 다른 사람이 npm을 통해 설치할 수있는 노드 패키지 (라이브러리)가되는 경우에만 필요합니다.
build /, dist / 또는 lib / 폴더가있는 라이브러리가 있다고 가정합니다. 이 폴더에는 라이브러리에 대해 다음과 같은 컴파일 된 파일이 있습니다.
-lib/
--bundle.js
그런 다음 package.json 에서 npm에게 라이브러리 (노드 패키지)에 액세스하는 방법을 알려줍니다.
{
"name": "my-library-name",
"main": "lib/bundle.js",
...
}
npm으로 노드 패키지를 JS 프로젝트에 설치 한 후 bundled bundle.js 파일 에서 기능을 가져올 수 있습니다 .
import { add, subtract } from 'my-library-name';
라이브러리에 코드 분할 (예 : 웹팩)을 사용할 때도 마찬가지 입니다. 예를 들어이 webpack.config.js 는 프로젝트를 하나의 묶음 대신 여러 묶음으로 나누는 코드를 사용합니다.
module.exports = {
entry: {
main: './src/index.js',
add: './src/add.js',
subtract: './src/subtract.js',
},
output: {
path: `${__dirname}/lib`,
filename: '[name].js',
library: 'my-library-name',
libraryTarget: 'umd',
},
...
}
여전히 package.json 에서 라이브러리의 하나의 기본 진입 점을 정의 합니다 .
{
"name": "my-library-name",
"main": "lib/main.js",
...
}
그런 다음 라이브러리를 사용할 때 기본 진입 점에서 파일을 가져올 수 있습니다.
import { add, subtract } from 'my-library-name';
그러나 package.json 에서 기본 진입 점을 무시 하고 코드 분할 번들을 가져올 수도 있습니다.
import add from 'my-library-name/lib/add';
import subtract from 'my-library-name/lib/subtract';
결국 package.json 의 기본 속성은 라이브러리의 기본 진입 점 파일 만 가리 킵니다.