package.json

미랭군·2023년 4월 24일
0

package.json에는 프로젝트에 대한 설명, 종속성 패키지, 실행 스크립트 등의 정보를 담는 매니페이스(Manifest) 파일입니다. 이번 포스트에서는 package.json에서 설정할 수 있는 필드 값들을 하나씩 살펴보도록 하겠습니다.

사용하는 패키지 매니저(NPM, Yarn, PNPM 과 같은)에 따라 설정 가능한 필드들이 다를 수 있기 때문에 사용하는 패키지 매니저의 공식 홈페이지(NPM, Yarn 2+, PNPM)에서 설정 가능한 필드를 확인하는 것이 좋습니다.

eslint나 prettier 등의 라이브러리 설정(eslint의 경우 eslintConfig 필드)도 package.json에서 가능하기 때문에 이러한 설정 역시 사용하는 라이브러리의 공식 홈페이지에서 확인하고 사용하는 것이 좋습니다.

package.json에 설정 가능한 필드를 하나씩 살펴보도록 하겠습니다. 필드 이름 옆 괄호로 어떠한 환경에서 설정 가능한 필드인지 나타내었습니다.

name
name 필드는 프로젝트의 이름을 나타냅니다. 아래와 같이 name 필드를 작성할 수 있습니다.

{
  "name": "@beomy/blog"
}

@beomy/처럼 name 필드는 @로 시작하여 스코프를 지정할 수도 있습니다.

version
version 필드는 프로젝트의 버전을 나타냅니다. 아래와 같이 version 필드를 작성할 수 있습니다.

{
  "version": "1.2.3"
}

files
files 필드는 패키지가 설치될 때 포함될 항목들을 저장하는 필드입니다. 아래와 같이 glob 패턴으로 작성할 수 있습니다.

{
  "files": [
    "dist/**/*",
    "lib/**/*"
  ]
}

files 필드를 사용하지 않고 프로젝트 루프에 .npmignore 파일을 생성하여 NPM에 배포하지 않을 파일들을 지정할 수도 있습니다. .npmignore 파일이 없는 경우 .gitignore 파일에 작성된 목록들이 NPM에 배포되지 않습니다.

main
main 필드는 패키지 사용자가 패키지를 사용할 때 진입 되는 경로입니다. 아래와 같이 작성할 수 있습니다.

{
  "main": "./sources/index.js"
}

아래 package.json과 같이 작성된 패키지가 있다면

{
  "name": "beomy-lib",
  "main": "lib/index.js"
}

import BeomyLib from 'beomy-lib'으로 패키지를 가져오면 beomy-lib의 lib/index.js를 가져오는 것과 동일합니다.

import BeomyLib from 'beomy-lib'
// Loads ./node_modules/beomy-lib/lib/index.js
profile
개발자

0개의 댓글