package.json의 주요 필드와 역할을 설명할 수 있나요?
프로젝트 메타데이터·의존성·스크립트·진입점 등 package.json의 핵심 필드와 역할을 정리합니다.
package.json 은 Node.js 프로젝트의 매니페스트(manifest) 파일로, 프로젝트 정보·의존성·실행 스크립트·모듈 진입점 등을 정의합니다. 패키지 매니저(npm, bun 등)와 번들러가 이 파일을 읽어 동작합니다.
주요 필드
name/version— 패키지 이름과 버전(SemVer). 배포·의존성 식별에 사용.scripts—bun run <name>으로 실행하는 명령 정의(build,dev,test등).dependencies— 런타임에 필요한 의존성. 배포 시 함께 설치됨.devDependencies— 개발·빌드에만 필요한 의존성(타입, 번들러, 테스트 등).peerDependencies— 이 패키지를 쓰는 쪽이 직접 설치해야 하는 호환 의존성(예: 플러그인이 요구하는react).type—"module"이면 ESM, 기본("commonjs")이면 CJS로 해석.main/module/exports— 패키지의 진입점.exports는 조건부 진입점(import/require, 경로 매핑)을 정밀 제어하며 최신 표준.engines— 요구하는 Node 등 런타임 버전 범위.private—true면 실수로 npm에 publish되는 것을 방지.
버전 표기 (SemVer)
{
"dependencies": {
"react": "^18.2.0", // 18.x.x 호환 범위 (마이너·패치 업데이트 허용)
"lodash": "~4.17.21", // 4.17.x 범위 (패치만 허용)
"left-pad": "1.3.0" // 정확히 이 버전
}
}^(캐럿) — 가장 왼쪽 0이 아닌 자리를 고정하고 그 아래를 허용(보통 마이너·패치).~(틸드) — 주로 패치 수준만 허용.- 정확한 버전 고정은
lock파일과 함께 재현 가능한 설치를 보장합니다.
package.json 필드에 대한 설명으로 옳은 것은?
이 레슨을 다 읽으셨나요?
완료 표시는 이 브라우저에 저장됩니다.