Outsider's Dev Story

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

node.js 프로젝트 설치시 npm 사용하기

npm이 1.x버전으로 메이저 버전이 업그래이드되면서 아키텍처가 대폭 변경되었습니다. 아래 글을 보시는 분들은 npm 1.0 사용하기를 참고해 주세요.


node.js로 개발을 하려면 그냥 V8 위에서 알아서 개발할 수도 있지만 node.js로 구축된 좋은 프로젝트나 라이브러리들이 많이 있기 때문에 이런 프로젝트들을 설치해서 사용해야 합니다.  node.js 자체도 그렇고 대부분의 프로젝트는  Github에 git clone만 알고 있으면 다운받아서 빌드하고 사용하면 되기는 하지만 버전관리도 있고 불편한게 사실입니다.

이같은 node.js 관련 라이브러리들을 관리하게 편하도록 Isaac Z. Schlueter이 만든 npm이라는 프로젝트가 있습니다. 이름만 보아도 레드햇읜  rpm(Redhat Package Manager)냄새가 많이 나듯이  npm 을 통해서 npm에 등록된  node.js 라이브러리들을 관리해주는 역할을 하고 있습니다.
 



npm  설치하기
당연히 node.js는 설치되어 있어야 하며 npm이 만들어진지 오래되지 않았기 때문에 최신버전의 node.js 를 쓰기를 권하고 있습니다.

curl http://npmjs.org/install.sh | sh

위 명령어를 사용하면 npm을 설치할 수 있습니다.

npm 설치시도시 권한거부 오류가 발생한 터미널 화면

npm설치 시도시 위처럼 권한오류가 발생할 경우에는 아래 명령어를 통해서 /usr/local/에 대한 소유권을 사용자에게 줍니다.($USER가 현재 사용자인듯 합니다. 저도 직접 사용자명 안적고 저렇게 적는건 처음 배웠네요.)

sudo chown -R $USER /usr/local

물론 설치자체를 sudo명령어를 통해서 /usr/local에 대한 권한거부가 없게 설치할 수도 있지만 npm은 sudo권한으로 설치하지 말것을 강력하게 권하고 있습니다. node.js로 실행될 script가 어떤 일을 할 수 없기 때문에 sudo로 설치하고 sudo로 npm을 사용하는 것은 자제해야 합니다.

cat >>~/.npmrc <<NPMRC
root = $HOME/.node_libraries
binroot = $HOME/bin
manroot = $HOME/share/man
NPMRC

사용자의 홈디렉토리 밑에 ~/.npmrc파일을 만들어서 위처럼 작성해 놓으면 npm 및 npm으로 설치한 팩키지가 설치될 폴더를 지정할 수 있는듯 합니다. 제가 있는듯 하다고 하는건 제가 npm을 설치할때는 위키에 .npmrc에 대한 언급이 없었기 때문입니다. ㅎ 그냥 설치하니까 저같은 경우는 /usr/local밑에 설치되었습니다. /usr/local밑에 bin, incloud, lib, share/man 폴더로 나누어져서 자동으로 설치가 되었습니다.

/usr/local/에 소유권을 사용자에게 준 후 정상적으로 npm 설치가 완료된 터미널 화면

이제 /usr/local 폴더에 권한을 준 후에 설치를 시작하면 정상적으로 설치가 완료되는 것을 볼 수 있습니다. (저는 chown 멸령어를 사용할때 $USER 대신 계정명을 사용하였는데 둘다 크게 상관없습니다.)




패키지 관리하기
이제 npm을 설치했으니 npm을 통해서 node.js로 작성된 프로젝트를 관리할 수 있습니다. 최근에 주목받는 프로젝트들은 상당수가 npm으로도 배포가 되고 있고 가이드에도 npm을 통한 설치를 가이드하고 있습니다. 예를 들어 Cloud9 IDE같은 경우는 npm install cloud9로 설치하면 됩니다.

npm으로 cloud9을 설치하는 화면

자동으로 /usr/local/bin에 실행파일이 생기기 때문에 아무곳에서나 cloud9 명령어를 입력하면 아래처럼 Cloud9 IDE가 실행되는 것을 볼 수있습니다.(이는 Cloud9 자체가 다른 프로젝트에서 사용하는 용도가 아닌 실행되는 프로젝트이기 때문이고 다른 프로젝트같은 경우는 node.js로 개발하실때 그냥 require()로 불러서 사용할 수 있습니다.)

clold9 명령어를 통해서 Cloud9 IDE를 실행한 모습


npm help를 하면 사용할 수 있는 명령어를 볼수 있습니다.

  • npm help 명령어 : 명령어에 대한 MAN페이지를 봅니다.
  • npm -h 명령어 : 간단한 멸령어에 대한 설명을 봅니다.
  • npm list 혹은 npm ls : npm에서 관리되고 있는 프로젝트리스트를 볼 수 있습니다.
  • npm install 프로젝트명 : 프로젝트를 설치합니다.
  • npm list installed : 현재 설치되어 있는 프로젝트 리스트를 봅니다.
  • npm view 프로젝트명 : 프로젝트의 버전별 상세정보 및 maintainer의 정보를 볼 수 있습니다.
  • npm update 프로젝트명 : 설치된 프로젝트는 최신버전으로 업데이트 합니다.

간단하게 제가 사용해본 명령어들 입니다. npm을 통해서 패키징해서 배포도 할 수 있고 그외 많은 기능이 있지만 기본적으로 이정도명령어들이면 사용하는데는 큰 불편함은 없을듯 합니다. 아직 써본지 그리 오래되지 않았지만 일일이 저장소 찾아서 내려받아서 하는것보다는 훨씬 편하군요.
2010/10/16 03:40 2010/10/16 03:40