배워보자~
[Node.js] Express 프로젝트 기본 구조 분석 - package.json 본문
package.json 이란? npm 패키지(프로젝트) 설정 파일(?), json 구조임.
https://docs.npmjs.com/files/package.json 공식문서 확인한 번 해보시고요.
참고로 이 글을 잘 번역하신 분도 계시네요. 여기 링크확인.
{
"name": "myapp",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"cookie-parser": "~1.4.4",
"debug": "~2.6.9",
"express": "~4.16.1",
"http-errors": "~1.6.3",
"morgan": "~1.9.1",
"pug": "2.0.0-beta11"
}
}
한줄 한줄 분석
- "name" : "myapp"
패키지의 이름. 공식적 패키지를 배포한다면 매우 중요한 요서가 된다. (이름이니 필수값이겠죠.)
이름 명명 규칙도 공식 문서 몇가지가 있다. 참고 하길~ - "version" : "0.0.0"
버전정보, 버전명명 규칙은 node-semver로 파싱이 가능해야 한다. node-semver 설치 후 실해해볼 수 있다.
** name + version 은 유일한 값으로 처리된다. 향후 공식 배포시 중요한 역활.
(dependencies 의 값을 보면 알 것이다.) - "private" : true
공식적인 배포용이 아니라는 것(비공개용)을 정의 함. 공식 배포을 막는 효과
(공식적인 배포라는 의미는 npm 레파지토리에 배포하냐 안하냐 임) - "scripts" : { "start" : "node ./bin/www" }
패키지 라이프 사이클 중에 다양한 타임에 실행되어지는 명령어(이벤트) 사전
쉽게 이해하려면 패키지 실행 중 발생하는 이벤트이고, 그 이벤트 발생 시 실행되는 모듈을 정의 한다고 생각하자. 즉, 이벤트 정의하고, 핸들러 정의
Express 실행 명령어를 기억 하는가? "npm start"
패키지를 실행하면 start 이벤트가 발생하고, scripts에 정의 된 "start"에서 처리 "node ./bin/www"가 실행
다양한 명령어(이벤트) 있다. 반드시 확인해보자. 링크 참조 - "dependencies" : { ...... }
참조 모듈 정의
버전은 다양한 방법으로 정의 할 수 있다. 반드시 링크 확인하자. (너무 명확(?)해서 설명 skip)
그 외 package.json에는 여러 property가 존재한다. 공식문서 반드시 확인하자.
package-lock.json 파일은 npm install 실행 시 의존모듈을 다운 받으면서 실제로 받은 버전의 기록이다.
왜 필요할까?
공동 작업 시 A모듈을 1.0이고, dependency정의 시 A>=1.0 이렇게 작성했다면 A 모듈이 2.0이 릴리즈 된 시점 이후 부터는 npm install하게되면 2.0으로 다운된다. 그러면 공동작업자들 사이에서 1.0, 2.0 이렇게 상이하게 다운 될 수 있다. 이렇게 되면 오류가 발생할 수 있다. 이런 상황을 방지하기 위해.
'Node.js' 카테고리의 다른 글
[Node.js] Express 프로젝트 기본 구조 분석 (0) | 2019.06.17 |
---|---|
[Node.js] Express로 웹프로젝트 만들기 (0) | 2019.06.14 |
Node.js & npm 업데이트 하기 (1) | 2019.06.13 |