package.json
에 대해 정리하기에 앞서 npm
에 관해 알아야 한다고 생각합니다.
npm 이란 ?
npm
에 업로드된 노드 모듈입니다.package.json
{
"name": "signature",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "parcel ./index.html",
"build": "parcel build ./index.html"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"parcel": "^2.10.3"
}
}
scripts
는 프로젝트에서 빈번하게 수행해야 하는 작업을 스크립트로 등록하기 위해서 사용됩니다.parcel ./index.html
을 동작하게 하기 위해서 우리는npm run dev
를 입력해주면 같은 동작이 실행됩니다.package.json
에는 현재 dependencies
속성이 없지만 추후에 자주 보게 될 속성 중 하나입니다. npm install
을 통해 패키지를 설치하게 되면 자동으로 dependencies
항목에 반영이 됩니다. dependencies
항목에서 추가된 패키지와 패키지의 버전을 확인할 수 있습니다.package.json
을 보면 devDependencies
에 2.10.3
버전의 parcel
로 개발 서버를 실행하고 빌드하고 있는 것을 확인할 수 있습니다. 실제로 배포할 때는 필요없는 테스트 도구나 웹팩, 바벨 같은 것들이 이 필드에 명시됩니다.name
과 version
은 각각 사용자들이 npm install
명령어로 해당 패키지를 설치할 때 사용할 패키지 이름과 버전을 명시합니다.description
과 keywords
는 각각 사용자들이 npm search
명령어로 해당 패키지를 검색할 때 보여질 패키지 설명과 키워드 목록을 명시합니다.license
는 해당 프로젝트의 라이센스를 표시할 수 있습니다. 아무리 좋은 패키지라도 라이센스가 명시되어 있지 않으면 쓰기가 꺼려지기 때문에, npm에 발행할 패키지라면 반드시 명시하는 것이 좋습니다.main
필드는 사용자가 해당 패키지를 npm
에서 설치하여 사용할 때 프로젝트 내에서 어떤 파일이 불러와질지를 결정하는 매우 중요한 필드입니다. 명시하지 않으면 기본적으로 프로젝트의 최상위 디렉토리에 있는 index.js
파일이 사용됩니다.node
와 npm
에 관련해서 제가 예전에 작성해놓은 포스트가 있습니다.지금까지 제가 JavaScript강의를 들으며 사용하고 있는 package.json
의 기본 구성 요소들에 대해 정리를 해보았습니다. 확실히 블로그에 포스팅하며 내용을 정리하니 애매하게 느껴졌던 package.json
의 내용이 좀 더 머릿속에 자리잡히는 느낌이 듭니다.
추후에 React
를 사용하는 때가 오면 더 많은 package.json
의 요소를 사용하게 될 것이라 짐작합니다.
그 때가 되면 다시 이 포스팅을 읽어보고, 내용을 추가하면 적절한 복습이 될 것이라 생각합니다.