Node.js | npm & yarn

Node.js 가 웹앱 개발에서 많이 쓰이는 이유 중 하나가 검증된 모듈이 많기 때문입니다. 앱 개발시 하나하나 개발하지 않아도 이미 검증된 모듈들을 적용시키면 앱개발을 쉽게 할 수 있습니다. 등록수 7만개 이상의 모듈들을 프로젝트에서 효과적으로 사용하기 위해서 관리해주는 기능이 필요합니다.

NPM(node Package modules)

NPM 은 프로젝트에서 각 모듈들을 효과적으로 사용하기 위해서 Isaac Z. Schlueter 가 개발한 프로그램입니다.

Node.js 를 설치하면 자동으로 같이 설치가 됩니다.

사용법

1
2
- 버전확인
$ npm -version
1
2
- 안내
$ npm -help
1
2
- 명령어 안내
$ npm <명령어> -h
1
2
- 모듈 설치(지역)
$ npm install <모듈> => 현재 디렉터리 안에 설치 : 소스 내에서 require()로 호출할 때 사용
1
2
- 모듈 설치(글로벌)
$ npm install <모듈> -g => {prefix}/lib/node_modules 디렉터리 안에 설치 : 터미널에서 모듈 사용 가능
1
2
- 설치된 모듈 리스트
$ npm ls (-g 옵션 가능)
1
2
- 설치된 모듈 확인
$ npm search <모듈>
1
2
- 설치된 모듈 정보 확인
$ npm list <모듈>
1
2
- 설치된 모듈의 최신 정보 확인
$ npm view <모듈> version
1
2
- 설치된 모듈의 최신 정보 확인
$ npm view <모듈> version
1
2
- 모듈 삭제
$ npm uninstall <모듈>

package.json

package.json 은 프로젝트의 정보와 의존하는 모듈들의 리스트를 정의 하는 파일입니다.

1
2
- package.json 생성
$ npm init
1
2
- 모듈을 package.json 에 등록함으로서 모듈 의존 설치
$ npm install <모듈> --save

아래 예는 현재 이 블로그의 package.json 파일 내용입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"name": "hexo-site",
"version": "0.0.0",
"private": true,
"hexo": {
"version": "3.3.5"
},
"dependencies": { => 의존하는 모듈 정보
"hexo": "^3.2.0",
"hexo-deployer-git": "^0.3.0",
"hexo-generator-archive": "^0.1.4",
"hexo-generator-category": "^0.1.3",
"hexo-generator-feed": "^1.2.0",
"hexo-generator-index": "^0.2.0",
"hexo-generator-tag": "^0.2.0",
"hexo-renderer-ejs": "^0.2.0",
"hexo-renderer-marked": "^0.2.10",
"hexo-renderer-stylus": "^0.3.1",
"hexo-server": "^0.2.0",
"hexo-tag-post-link": "^1.0.6"
}
}

Yarn(A new package manager for JavaScript)

Yarn 은 페이스북, Exponent, 구글, Tilde 의 엔지니어들이 기존 npm의 이슈들을 극복하고자 새롭게 개발한 package manager 입니다.

1
2
3
- yarn 설치
$ sudo apt-get update
$ sudo apt-get install yarn
1
2
- yarn 초기화
$ yarn init
1
2
- yarn 모듈 설치
$ yarn add <모듈, git remote url, tar파일 등 > (-g) => package.json, yarn.lock 둘다 업데이트
1
2
- yarn 모듈 업그레이드
$ yarn upgrade <모듈>
1
2
- yarn 모듈 삭제
$ yarn remove <모듈>
1
2
- npm => yarn 패치
$ yarn => 위치한 프로젝트의 npm 에서 의존한 모듈리스트를 yarn 로 가져옵니다.

아직은 npm 이 yarn 보다 익숙합니다만 yarn 을 조금씩 써봐야겠습니다.

node.js