※ 스스로 공부한 것을 토대로 정리를 한 것이어서, 틀린 부분이 존재할 수 있습니다. 틀린 부분에 대해서 댓글로 무차별 공격 환영합니다 :)
node.js환경에서 서버 구동을 위한 package.json의 필수적인 부분에 관하여 설명하려고 합니다.
목차
- package.json이란
- scripts
- dependensies, devDependensies
1. package.json이란
If you plan to publish your package, the most important things in your package.json are the name and version fields as they will be required.
npm.doc에서 말해주는 package.json의 설명중 일부이다. 이 문서를 토대로 보면 package.json은 package를 만들고 배포하고 싶은 개발자들에서 전반적인 내용이 중요하다는 것을 알 수 있습니다.
* 물론 협업을 할 때 어느 정도 package의 명세를 기재해주면 협업자의 이해를 쉽게 도울 수 있습니다.
그럼 저처럼 개발할 때 쓰긴 쓰는데 정확히 뭔지는 잘 모르겠고 하는 사람들에게 package.json의 어떤 부분이 중요할까요?
2. scripts
첫번째로는 scripts가 중요합니다.
scripts는 npm 명령어로 원하는 파일을 node.js에 작동시킬 수 있는 속성입니다.
npm run [scriptsName]
예를 들어보겠습니다.
우선 scripts를 사용하지 않고 node command를 이용하여서
서버를 작동을 한 것입니다.
이렇게 보면 그냥 npm 명령어가 아니라 node command로 해도 상관없겠다고 생각이 들 수 도 있습니다.
하지만 scripts를 이용한 서버작동을 보여드리려 차이점을 알려드리겠습니다.
최신 JS code transcompile을 위해 babel이 적용되고 서버가 종료되지 않게 실시간 작동하는 nodemon이 추가된 scripts입니다.
package.json에 scripts를 만들면 터미널 창에서 npm run dev:serer만 입력해도 손쉽게 작동을 합니다.
그러나 node command를 사용할 시 "nodemon --exec babel-node src/sercer.js" 모두 입력하는 번거로움이 생기게 됩니다.
이렇게. js 파일에 조건이 많이 붙게 되거나
이후 프로젝트가 더 커지게 되어서 더 많은 파일을 node.js에 작동하게 될 때
scripts가 효율적으로 사용을 할 수 있게 됩니다.
※ 주의: 터미널 창에서 npm run scripts를 할 때 터미널의 현재 위치가 package.json이 있는 위치여야지 작동을 할 수 있으므로 주의 하시길 바랍니다.
3. dependensies, devDependensies 차이점
결론적으로 말씀드리면 둘다 package이고 이해하기 쉽게 분류해놓은 것이지 다 같은 것들입니다.
devDependencies의 object들이 dependecies로 이동한다고 하여서 문제 될게 전혀 없다는 것이지요.
그럼 이해하기 쉽게 분류를 해놓았다는데 어떤 차이점으로 분류를 한걸까요?
dependencies는 원하는 프로젝트를 실행하기 위해서 필수적인 package인 것입니다.
반면 devDependencies는 개발자가 프로그래밍을 할 때 조금 더 편리하게 하기 위해서 필요한 것이지 필수적인 것은 아닙니다.
dependencies관련 예시들과 npm, package.json에 관한 기초적인 내용을 아래 포스터에 올려놓았으니 참고하시길 바랍니다.
2022.09.01 - [분류 전체보기] - NPM (Node Packaged Manage)
다음 blog 주제 및 공부할 개념
- JSON 확장자란?
- package.json 배포 시 유의점