Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

package.json으로 npm 의존성 모듈 관리하기

node.js로 프로젝트를 하면 자연히 npm을 사용하게 되고 의존모듈들을 npm으로 설치해서 사용하게 됩니다. 프로젝트 소스가 모듈에 의존하고 있기 때문에 모듈의 버전에 따라서 문제가 생길 여지가 있기 때문에 의존성 모듈의 버전관리를 해줄 필요가 있습니다.(Maven에서 XML로 의존모듈 정보를 관리해 주는 것을 생각하시면 됩니다.)

npm은 프로젝트에 대한 설정을 package.json이라는 파일에 의존하고 있고 이 파일에 JSON형식으로 작성해서 프로젝트에 대한 관리를 할 수 있습니다. 예를 들어 express로 기본 프로젝트를 생성하면 아래와 같은 package.json파일이 생성되는 것을 볼 수 있습니다.


{
    "name": "application-name"
  , "version": "0.0.1"
  , "private": true
  , "dependencies": {
        "express": "2.3.11"
      , "jade": ">= 0.0.1"
  }
}

package.json파일이 하는 역활은 여러가지가 있기 때문에 여기서는 의존모듈관리에 대한 부분만 보도록 하겠습니다. 위 파일에서 dependencies부분을 보면 모듈에 대한 버전정보가 명시되어 있는 것을 볼 수 있습니다.

사용자 삽입 이미지

일반적으로는 npm install 모듈명을 입력해서 모듈을 설치하지만 프로젝트의 루트경로에 package.json파일을 두고 npm install 명령어를 입력하면 npm이 package.json에 명시된 dependencies부분의 모듈들을 모두 설치해 줍니다. 물론 package.json파일이 없는 상태에서 npm install 명령어만 입력하면 의존정보를 찾을수 없다는 오류가 나게 됩니다.

의존성을 표시하는 형식을 아주 간단합니다.

  • version : 완전히 일치하는 버전
  • =version : 완전히 일치하는 버전
  • >version : 큰 버전
  • >=version : 크거나 같은 버전
  • <version : 작은 버전
  • <=version : 작거나 같은 버전
  • ~version : 버전범위입니다. ~0.2이면 0.2부터 0.3보다 작은 범위
  • 1.2.x : x 표기도 가능합니다
npm update로 모듈들을 최신 버전으로 업데이트 하려고 할때도 package.json에 명시된 버전에 따라서만 업데이트가 되기 때문에 특정버전을 명시한 모듈의 경우는 최신버전이 있다고 하더라도 업데이트 되지 않습니다. 더 자세한 정보는 npm의 json문서에서 dependencies부분에서 볼 수 있습니다. (물론 문서를 보시면 아시겠지만 package.json이 모듈의존성만 표시하는 것은 아닙니다.)
2011/07/11 02:51 2011/07/11 02:51