본문 바로가기
Study/Express(node.js)

node.js ) package.json 파헤치기

by JongIk 2022. 1. 16.
반응형

npm 과 package.json

npm 은 Node Package Manager 의 약자로, node 로 생성한 패키지/프로젝트를 관리하는 도구입니다.
그리고 이러한 패키지/프로젝트 정보를 가지고 있는 것이 package.json 파일입니다.

npm 과 package.json 은 독립된 존재로 보는 것이 아니라 연관 지어 생각해야 합니다.


package.json 생성

npm 을 이용해 package.json 을 생성할 수 있습니다.

$ npm init

package.json 구조

  • 예시) package.json
{
 "name" : "test",
 "version" : "1.0.0",
 "description" : "test package.",
 "main" : "test.js",
 "scripts" : {
   "test" : "echo 1",
   "test2" : "echo 2",
 },
 "author" : "",
 "license" : "ISC"
}

name

해당 프로젝트의 이름입니다.

version

해당 프로젝트의 버전입니다.

description

해당 프로젝트의 설명입니다. npm search 를 통해 패키지, 프로젝트를 검색할 수 있는데 이때 보이는 설명입니다.

main

해당 패키지의 진입점인 모듈입니다.
예를 들어 프로젝트의 이름이 test.js 일 때 require('test') 를 했을 때 실행되는 파일을 main 에 명시합니다.

scripts

복잡한 명령을 npm 을 이용해 단순화합니다.

npm run test 를 실행하면 echo 1 를 실행하고 터미널 창에 1이 찍히게 됩니다.

author

제작자의 정보입니다.

license

ISC 는 Internet Systems Consoritum 의 약자로 오픈소스임을 알립니다.

keywords

npm 에서 패키지를 찾을 때 사용하는 키워드입니다..

bugs

사용 중 에러/버그 발생 시 알려줄 담당자 정보입니다.

dependencies, devDependencies

의존성 모듈을 관리합니다.

  • dependencies : 일반적인 배포환경에서 필요한 의존성 모듈
  • devDependencies : 개발환경에서 필요한 의존성 모듈

의존성 모듈은 JSON 형태로 기록되며, [모듈 : 버전] 형태로 기록됩니다.

npm 을 이용해 모듈을 설치할 때 의존성 모듈을 자동으로 추가할 수 있습니다.

$ npm install --save express

--save 옵션을 주어 설치하면 package.json 은 다음과 같이 바뀝니다.

{
 "name" : "test",
 "version" : "1.0.0",
 "description" : "test package.",
 "main" : "test.js",
 "scripts" : {
   "test" : "echo 1",
   "test2" : "echo 2",
 },
 "author" : "",
 "license" : "ISC",
 "dependencies" : {
   "express" : "version"
 }
}
  • devDependencies 에 추가하고 싶다면 npm install --save -dev [패키지] 형태로 설치할 수 있습니다.
반응형

댓글