Frameworks/Node.js

[Node.js 강좌] 7. Node.js/NPM - package.json

양디 2016. 1. 7. 13:14

Package.json ?


package.json은 NPM을 위한 각종 정보들을 저장해놓은 파일입니다.

어떤 프로젝트를 만들 때, npm을 통해서 다양한 모듈들을 설치하고 이용하게 되는데 

이 때에 설치된 모듈들을 관리해주는 파일이라고 생각하시면 됩니다. 

잘 관리해 두시면, 프로젝트 모듈 관리하거나 여러 js 파일들을 한번에 실행하거나 할 때에 편리하게 사용할 수 있습니다.


Package.json 생성


npm의 명령어 중 init 이라는 명령어를 통해서 만들 수 있습니다.

프로젝트의 시작 폴더에서 다음과 같이 입력합니다.


npm init



위와 같이 커맨드 창에 입력하시면 사진처럼 나오게 됩니다.

npm init을 하면 정보들을 요구하게되고, 그 정보를 입력하면 그 정보에 의거하여 아래 파일이 만들어지게 됩니다.



package.json 요소



위의 기본적인 정보들은 모듈을 만들고, 배포할 때에 중요한 역할을 합니다.

name / version / description / author / license / keywords / main 들은 배포할 때 중요한 역할을 합니다.


사람들이 npm search를 통해 검색할 때에 이름과 버전, 디스크립션 키워드 등을 통해서 설정하고,

main은 모듈을 임포트할 때에 메인이 되는 파일입니다. 예를 들어 위의 파일을 임포트하면 ,


1
var beta = require('beta');
cs


이 때에 beta는 main에 설정된 index.js를 향하게 됩니다.


위의 내용은 모듈을 배포, 설치 및 모듈을 개별 모듈화하여 활용할 때에 필요한 것입니다.


프로젝트를 운영하기 위하여 필요한 요소들은 다음과 같습니다.

모듈들을 관리하기 위한 요소입니다.

express 기본 프로젝트를 만들면 dependencies 요소는 다음과 같이 지정됩니다.


먼저 dependencies를 열고, 모듈의 이름과 우측에는 version을 입력합니다.

이 때에 우측의 버전을 보면 버전 앞에 기호가 있는 것을 볼 수 있는데, 버전을 입력하는 방식에는 여러 방식이 있습니다.

  • version : 정확하게 써져있는 버전을 요구합니다.
  • ~version : 쓰여진 버전과 근접한 버전을 요구합니다. 정확하게 같지 않아도 됩니다.
  • >version : 써져 있는 버전보다 더 높은 버전을 요구합니다.
  • <version : 더 낮은 버전을 요구합니다.
  • >=version , <=version : 크거나 같은, 작거나 같은 버전을 요구합니다
  • 1.2.x : 1.2. 안의 버전을 요구합니다. 1.2.1, 1.2.3 같은 버전은 가능하나, 1.3.0은 불가능합니다.
  • 더 많은 자료는 npm document  를 참고하세요.
위와 같이 dependencies를 설정 후에, npm install을 입력하면 필요한 모듈을 버전에 맞게 자동으로 설치합니다.

혹은 저번에 배웠던 npm install [모듈] --save를 통하여서 dependencies에 자동으로 등록하면서 설치하는 방법도 있습니다.


위의 dependencies는 프로젝트를 사용하기 위해 필요한 모듈이라면, devDependencies는 개발을 위해 사용되는 모듈입니다.

사용법은 위와 같습니다.



scripts는 npm [scripts] 명령어를 통하여 실행할 수 있는 요소들을 의미합니다.

예를 들어 처음 package.json을 만들면 기본으로 있는 위의 요소를 실행하기 위해서는 좌측의 명령어 "test"를 입력해주시면 됩니다.



npm test


위와 같이 입력하면 


위와 같이 실행되는 것을 볼 수 있습니다.

현재 test는 ERROR를 출력하고, exit 1로 프로그램을 종료하기 때문에 에러 메시지가 뜨는 것을 확인할 수 있습니다.


이를 응용하여 일반적으로 "start" 명령어로 서버 구동에 필요한 파일들을 동시에 실행시키곤 합니다.


더 많은 요소들이 있지만, 실제 활용하기에 크게 필요한 부분들만을 모아서 정리해 보았습니다.




Point !

npm init을 통해서 package.json을 생성한다.

package.json에는 수많은 모듈을 유지 관리하기 위한 정보들이 있다.






댓글