반응형
애플리케이션을 개발할 때 package.json 파일을 이용하면 사용하는 확장 모듈에 대해 의존성 관리가 가능해서 편하다.
package.json 파일은 기본적으로 CommonJS 명세를 따르며 JSON 형식 파일이다.
직접 작성할 수도 있고, npm init 명령어를 통해 자동으로 생성할 수 있다. 해당 애플리케이션을 위한 확장 모듈 정보는 npm install -save를 통해 모듈 정보를 추가할 수 있다.
npm init
npm install -save
1. 예시
{
"name" : "test",
"description" : "javascript's test programming.",
"keywords" : ["util", "f", "server", "client", "browser"],
"author" : "Goorm",
"contributors" : [],
"dependencies" : [],
"repository" : {"type": "git", "url" : "git://gitbub.com/documentcloud/test.git" },
"main" : "test.js",
"version" : "1.1.6"
}
2. 명세 - key, value
1) name
- 프로젝트 이름으로 가장 중요하다.
- 중앙 저장소에 배포할 때 version과 함께 필수항목
- url로 사용된다.
- 설치할 때 디렉토리 이름이 되기 때문에 url이나 디렉토리에서 쓸 수 없는 이름은 사용불가
- 이름에 node나 js는 사용불가
- 214자 미만이며, 점(.)이나 밑줄(_) 시작할 수 없다.
- 대문자 사용불가
- require()함수의 인수로 사용되기 때문에 짧고 알기 쉬운 것이 좋다.
2) version
- 프로젝트 버전 정의
- 3단계 버전 사용
- -로 태그 이름 가능
3) description
- 프로젝트 설명으로 문자열로 기술
- npm search로 검색된 리스트에 표시된다.
- 패키지를 찾아내고 이해하는데 도움이된다.
4) keywords
- 프로젝트를 검색할 때 참조되는 키워드
- description과 함게 npm search 검색된 리스트에 표시된다.
5) homepage
- 프로젝트 홈페이지 주소
- url 항목과 다르며, url을 설정하면 문제가 발생하므로 주의해야한다.
6) author
- 프로젝트 작성자 정보로 한사람만 지정
- JSON형식으로 name, email, url 옵션을 포함
7) contributors
- 프로젝트 참여자
- 여러 사람을 배열로 지정
8) repository
- 프로젝트 소스코드 저장소 정보
- 프로젝트 홈페이지 url을 명시하면 안된다.
9) scripts
- 프로젝트에서 자주 실행해야 하는 명령어를 scripts로 작성
- npm 명령어로 실행가능
10) config
- 소스코드에서 config 필드에 있는 값을 환경변수처럼 사용가능
11) private
- true로 설정하면 중앙 저장소로 저장하지 않는다.
- => (npm search로 검색되지 않는다는 뜻인가. 아시는분 댓글로 부탁드립니다.)
12) dependencies
- 프로젝트 의존성 관리를 위한 부분
- 이 프로젝트가 어떤 확장 모듈을 요구하는지 정리
- 일반적으로 package.json에서 가장 많은 정보가 입력된다.
- 애플리케이션을 설치할 때 이 내용을 참조하여 필요한 확장 모듈을 자동으로 설치
- 따라서 개발한 애플리케이션이 특정한 확장 모듈을 사용한다면 반드시 dependencies에 명시해야한다.
- npm install 명령은 dependencies에 포함된 모든 확장 모듈을 설치한다.
13) devDependencies
- 개발할 때만 의존하는 확장 모듈을 관리
14) engine
- 실행 가능한 노드 버전의 범위를 결정
반응형
'Development > Node.js' 카테고리의 다른 글
Nodejs. axios를 활용한 http 요청 (0) | 2020.08.18 |
---|---|
Nodejs. Windows에서 node 콘솔을 clear하는 방법 (0) | 2020.08.11 |
nodejs : MySQL 연동시 datetime 출력양식 설정 (0) | 2020.08.05 |
2. 자바스크립트 엔진 (0) | 2020.07.19 |
1. Node.js (0) | 2020.07.19 |