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-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
source ~/.profile
js 파일에서 var module = require('모듈이름')
을 실행하면 global
에 저장된 모듈을 찾을 수 없다.
npm link 모듈이름
명령을 먼저 실행 하고 js 파일을 실행하자.