Node Package Manager
프로젝트 디렉토리를 생성후 해당 위치에서 npm init 실행
아래와 같은 package.json 파일이 생성된다.
{
"name": "node_exam_200",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
설정, 라이브러리, 실행 스크립트 등의 내용이 지정됨.
npm 명령을 통해 쉽게 사용할 라이브러리들을 설치 가능하다.
$ npm install request --save
request 모듈을 설치, --save 속성을 통해 dependencies에 어떻게 저장할 것인지 지정 가능하다.
-P, --save-prod: package.json의 dependencies에 패키지를 등록. (default)-D, --save-dev: package.json의 devDependencies에 패키지를 등록.-O, --save-optional: package.json의 optionalDependencies에 패키지를 등록--no-save: dependencies에 패키지를 등록하지 않습니다.위 명령을 실행하면 아래처럼 package.json 파일에 request dependencies 가 추가된 것을 알 수 있다.
{
"name": "node_exam_200",
...
"dependencies": {
"request": "^2.88.2"
}
}
npm uninstall 패키지명 명령으로 삭제 가능하다.
npm install 명령을 통해 설치한 패키지를 효울적으로 관리하기 위한 패키지/프로젝트 정보를 가지는 설정/구성 파일
npm init 시 생성되었던 package.json 파일 참고
name - 프로젝트 이름version - 프로젝트 버전description - 프로젝트 설명main - 패키지 진입모듈, require('package-name') 실행시 실행하는 파일scripts - 복잡한 명령을 단순화$ npm run test
> test@1.0.0 test /Users/user/Documents/nodejs/test
> echo "Error: no test specified" && exit 1
scripts 에 등록된 test 속성의 명령대로 실행된다.
pm2 start app.js 와 같은 복잡한 서버 실행 명령을 등록해두고 npm 을 사용해 쉽게 실행할 수 있음
author - 제작자명license - 라이센서 명시keywords - npm 에서 패키지 검색시에 사용하는 키워드bugs - 사용중 에러 발생시 표시할 담당자 정보dependencies - 배포 환경에서의 의존성 모듈devDependencies - 개발환경에서의 의존성 모듈(테스팅 모듈 다수 포함)npm install: dependencies, devDependencies 의 모든 의존성 모듈 설치
npm install --production: dependencies 의존성 모듈만 설치
$ npm install -g '모듈이름'
permission error 가 뜰 것인데 아래 명령어로 global 모듈 설치 위치를 HOME 디렉토리로 설정하고 다운받아야 한다.
Make a directory for global installations:
mkdir ~/.npm-globalnpm config set prefix '~/.npm-global'export PATH=~/.npm-global/bin:$PATHsource ~/.profilejs 파일에서 var module = require('모듈이름') 을 실행하면 global 에 저장된 모듈을 찾을 수 없다.
npm link 모듈이름 명령을 먼저 실행 하고 js 파일을 실행하자.