/*프로젝트 초기화 하기*/
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 |