/*프로젝트 초기화 하기*/

npm init

package name 패키지의 이름. package.json의 name 속성에 저장된다.
version 패키지의 버전.
entry point 자바스크립트 실행 파일 진입점. package.json의 main 속성에 저장된다.
test command 코드를 테스트할 때 입력할 명령어. package.json의 scripts 속성 안에 test 속성에 저장된다.
git repository 코드를 저장해둔 Git 저장소 주소. package.json의 repository 속성에 저장된다.
keywords 키워드는 npm 공식 홈페이지에서 패키지를 쉽게 찾을수 있게 해준다. package.json의 keywords 속성에 저장된다.
license 해당 패키지의 라이선스

 

/* 패키지 설치 */

npm install 모듈명 --save

@^1.1.1

1.1.1 <= 버전 < 2.0.0 까지 설치

@~1.1.1

1.1.1 <= 버전 < 1.2.0 까지 설치

@>1.1.1

1.1.1 버전보다 높은 버전이 설치

@latest or @x

항상 최신 버전의 패키지를 설치

 

*install 은 i로 줄여쓸 수 있다.

* 모듈명을 여러 개 입력해서 동시에 설치가능하다.

 

--save

*옵션을 사용하지 않으면 package.json의 dependencies에 등록이 되지 않는다. 하지만 npm@5 부터는 기본값으로 설정되어 있으므로 따로 붙이지 않아도 된다.

 

--save-dev

*devDependencies 에 추가함. 개발할 때만 필요한 패키지를 명시하는 경우 사용된다. -D로 줄여쓸 수 있다.

* 패키지를 설치할 경우 해당 패키지가 의존하는 다른 패키지들이 같이 설치된다.

* 설치한 패키지들은 node_modules 폴더에 들어 있다.

 

--global

*-g로 줄여쓸수있다.

* 전역 설치 라는 옵션으로 패키지를 node_modules에 설치하는 것이 아니라 npm이 설치되어 있는 폴더에 설치한다. 이 폴더의 경로는 시스템 환경 변수에 등록되어 있으며 전역 설치한 패키지는 콘솔의 커맨드로 사용할 수 있다.

* 전역 설치한 패키지는 package.json에 기록되지 않는다.

 

npx

*package.json에 패키지를 기록하고 전역설치 또한 하고싶다면

npm install --save-dev rimraf

npx rimraf node_modules

위와 같이 모듈을 package.json의 devDependencies 속성에 기록한 후 npx를 명령어를 실행해 패키지를 전역 설치한 것과 같은 효과를 얻을 수 있다.

 

npm install [저장소 주소]

*npm에 등록되지 않은 일부 패키지의 경우 GitHub이나 nexus 등의 저장소에 보관되어 있을 수도 있는데 그럴 경우 패키지명 대신 저장소 주소를 명시하면 설치가 가능하다.

 

/* 패키지 지우기 */

npm uninstall

* rm으로 줄여 쓸수도 있다.

* --save 옵션을 사용하지 않으면 package.json에서 삭제되지 않는다..

* --save-dev devDependencies 에서 삭제함.

* node_modules 폴더를 삭제했을 경우 설치한 패키지는 지워졌지만 package.json에 설치한 패키지 내역이 들어 있으므로 npm install 명령어 실행시 다시 설치된다.

 

/* 패키지 업데이트 */

npm update [패키지명]

명시한 패키지를 업데이트 한다. npm update 까지만 실행하면 업데이트 가능한 모든 패키지가 Wanted에 적힌 버전으로 업데이트 된다.

 

npm outdated

*업데이트 할 수 있는 패키지가 있는지 확인

Package Current Wanted Latest Location
body-parser 1.17.2 1.18.1 1.18.1 경로
express 4.15.0 4.15.4 4.15.4 경로

Current와 Wanted가 다르다면 업데이트가 필요한 경우이다.

 

/* 패키지 검색 */

npm search [검색어]

* npm 패키지를 검색할 수 있다. 

 

npm info [패키지명]

* 패키지의 세부 정보를 파악하고자 할 대 사용하는 명령어이다. package.json의 내용과 의존 관계, 설치 가능한 버전 정보 등이 표시된다.

 

/* npm 로그인 */

npm adduser

* npm 로그인을 위한 명령어로 npm 공식 사이트에서 가입한 계정으로 로그인 가능하다. 나중에 패키지를 배포할 때 로그인이 필요하며 패키지를 배포하지 않을것이라면 npm에 가입할 필요는 없다.

 

npm whoami

* 로그인한 사용자가 누구인지 알려준다. 로그인된 상태가 아니라면 에러가 발생한다.

 

npm logout

* npm adduser로 로그인한 계정을 로그아웃할 때 사용한다.

 

/* 버전 갱신 */

npm version [버전]

* package.json의 버전을 올려준다. major, minor, patch 라는 문자열을 넣어서 해당 부분의 숫자를 1 올릴 수도 있다.

ex) npm version 5.3.2, npm version minor

 

/* 경고 삽입 */

npm deprecate [패키지명][버전] [메시지]

* 해당 패키지를 설치할 때 경고 메시지를 띄우게 하는 명령어로 자신의 패키지에만 쓸 수 있다. deprecated 처리를 해두면 다른 사용자들이 버그가 있는 버전의 패키지를 설치할 때 경고 메시지가 출력된다.

 

/* 배포 */

npm publish

* 자신이 만든 패키지를 배포할 때 사용한다.

 

npm unpublish

배포한 패키지를 제거할 때 사용한다. 24시간 이내에 배포한 패키지만 제거할 수 있다.

이러한 제약이 있는 이유는 의존성 관계 때문이며 다른 사람이 사용하고 있는 패키지를 제거하는 경우를 막기 위해서이다.

 

- 모듈 -

request

* 서버에 요청을 보낼 때 request 모듈을 이용한다.

 

cheerio

* cheerio 모듈은 jQuery 기반 문법을 지원한다. 웹 페이지에서 받아온 내용에서 원하는 데이터를 추출하기 위해 사용할 수 있는 find() 등 다양한 메소드를 제공한다.

 

inconv-lite

* incov 모듈(node-iconv)는 다양한 인코딩을 제공하는 반면 네이티브 코드 컴파일이 필요한 반면, iconv-lite는 그러한 컴파일 과정이 필요 없는 순수한 자바스크립트이다. 또한 보다 사용이 쉽다.

 

nodemon

* 소스코드가 바뀔 때마다 자동으로 노드를 재실행해준다.

 

rimraf

* 리눅스나 macOS의 rm -rf 명령어를 윈도우에서도 사용할 수 있게 해주는 패키지이다.

'공부 > Node.js' 카테고리의 다른 글

템플릿 엔진 모듈 - ejs, pug 모듈  (0) 2019.03.07
크롤링 - cheerio, iconv-lite 모듈  (1) 2019.03.07
http 모듈  (0) 2019.03.06
fs 모듈  (0) 2019.03.06
API 읽는 법 - fs.access(path[,mode],callback)  (0) 2019.03.06

+ Recent posts