1) package.json
dependencies : 사용중인 모듈의 이름과 버전. 프로그램의 실행에 반드시 있어야 하는 파일들이다. 뒤에
main : 메인 파일
bin : 실행 파일
scripts : 일부 명령어를 만들어 지정할 수 있다. (npm start -> nodemon ./bin/www.js 로 인식)
나머지 정보들은 주로 이번 프로젝트에 대한 정보다. 프로젝트의 이름, 프로젝트에 대한 설명, 버전, git주소, 라이센스, 추천 검색어 등..
2) package-lock.json
3) node_modules
설치 되어있는 모듈이 있는 폴더다. 해당 폴더가 없으면 프로그램이 실행되지 않는다. 하지만 git에 업로드 할때는 해당 폴더를 제외한다. 왜냐하면 필요한 모듈에 대한 정보는 package.json에 저장되어있기 때문에다. git에서 다운받게 되면 npm install을 입력하게 되면 필요한 모듈이 바로 설치가 된다.
git에 업로드 할때마다 node_modules을 지우는건 매우 비효율적이다. 이는 .gitignore 파일을 만들어 설정하면 된다. 해당 파일에 명시되어 있는 것은 git add . 으로 해도 정보가 등록되지 않는다
즉 package.json은 프로젝트의 정보를 정의하고, 의존하는 패키지 버전 정보를 명시하는 파일이라고 나는 이정도만 이해 했다