우리가 작업하고 있는 프로젝트가 npm이 관리하는 패키지라는 것을 알려주기 위해서 pakage.json을 사용한다.
npm init -y
pakage.json은 프로젝트루트 폴더에서 위 명령을 입력하면 생성이 된다.
// package.json
// 패키지의 메타데이터를 포함하는 파일
// 우리가 개인프로젝트를 만든다고 하더라도 결국에는 패키지를 만드는 행위
{
// 아래 내용들은 패키지로 배포하지 않는다면 크게 의미없는 내용들로 삭제 가능하다.
"name": "20221225", // 패키지의 이름
"version": "1.0.0",
"description": "",
"main": "index.js",
"keywords": [],
"author": "",
"license": "ISC",
// -----------
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
}
"scripts": npm 을 사용하면서 자주 사용하게 되는 or 우리의 프로젝트를 관리하면서 자주 사용하게 되는 스크립트들을 간단하게 호출할 수 있도록 만든 필드
usage : npm run 'scripts keyName'

devDependencies 와 package-lock
프로젝트를 진행하다보면, 다른 사람이 이미 만들어놓은 패키지를 사용하는 것이 효과적일 때가 많다.
패키지를 적용하여 작업을 진행한다면, 프로그램은 동작의 상당부분을 설치된 패키지에 의존하게 된다.
package.json의 중요한 역활중에 다른 하나는 이러한 의존성들을 나열하여 관리하는 것이다.
실제로 설치된 의존성 패키지들은 Package-lock.json 파일로 확인할 수 있다.


Git으로 버전관리를 할 예정이라면, Package-lock.json도 함께 첨부해주어야 한다.
(pakage.json에 등록된 파일은 버전이 명확하지 않더라도 설치 후 실행하게 만들기 때문에, 실제로 작업 환경시 어떤 패키지 버전을 확인했는지 정확하게 명시하기 위해서 Package-lock.json를 추가해야한다)
설치된 의존성 패키지(모듈)는 프로젝트 루트폴더 안의 node_modules 에서 확인할 수 있다.