[NodeJS] NPM 명령어 모음

개발일기·2021년 10월 7일

NPM(Node Package Manager)이란?

  • Node.js 전용 패키지가 올라가 있는 서버이다.

  • 패키지 업로드/다운로드 및 버전관리 기능을 제공한다.

  • node.js를 설치할 때 함께 설치된다.

  • 패키지는 남들이 만들어 놓은 외부모듈로, 라이브러리 같은 개념이다.

  • NPM 공식 사이트: https://www.npmjs.com/

package.json 생성

  • 수많은 패키지를 다운받다보면 관리가 어려워진다.

  • 그래서 프로젝트마다 package.json 파일을 만들어서 패키지 목록 및 버전을 관리한다.

  • 프로젝트를 생성하자마자 package.json을 만들어주고 시작하길 권장한다.
  • 명령어: npm init

1) package name 등의 정보를 입력해준다. 필요 없는 항목은 Enter를 눌러 스킵할 수 있다.

2) 마지막에 Is this OK? 항목에서 yes를 입력해준다.

  • git 설정이 안 되어 있다면, git repository 관련 warning이 뜰 수 있는데 무시해도 된다.
  • 정상적으로 package.json 파일을 생성했다면 아래의 3가지 파일 및 폴더가 생성될 것이다.
  • 단, 외부 패키지를 전혀 설치하지 않은 초기 상태라면 node_modules폴더, package-lock.json파일은 생성되지 않을 수 있다.
  • 추후에 "npm install 패키지" 명령어 등을 통해 패키지를 설치하면 자동으로 생성될 것이다.
  1. package.json 파일
    : 설치된 패키지를 dependencies 항목에서 관리한다.
  • socket.io 라는 패키지를 설치한 후 캡쳐한 화면이다.
  1. node-modules 폴더
    : 설치한 패키지가 실제로 저장되어 있는 폴더이다.

: 설치한 패키지가 의존하는 다른 패키지도 함께 설치되어 저장된다.

  • npm root 명령어로 node-modules 폴더 위치를 확인할 수 있다.
  1. package-lock.json 파일
    : 설치한 패키지 + 의존하는 패키지 항목을 모두 관리한다.

패키지 설치/삭제 명령어

: 외부 모듈인 패키지를 설치/삭제하는 명령어이다.

  1. 패키지 설치
  • 명령어: npm install 패키지명

: 패키지를 현재의 프로젝트의 node_modules 폴더에 설치한다.

: package.json 파일의 dependencies 항목에도 자동으로 추가 된다.

  • 과거에는 dependencies에 패키지를 추가하기 위해 npm install --save 패키지명 으로 설치했으나, npm@5 버전 이후 부터는 디폴트로 적용되므로 --save 옵션을 붙이지 않아도 된다.

  • npm i 패키지명 으로 축약 사용 가능.

  • npm install 패키지명@버전 으로 버전을 지정하여 설치 가능

  • npm install 주소 로 패키지 설치 주소를 지정하여 설치 가능

  1. 패키지 여러개 설치
  • 명령어: npm install 패키지1 패키지2 패키지3

: 여러개의 패키지를 동시에 설치한다.

  • npm i 패키지1 패키지2 패키지3 으로 축약 사용 가능.
  1. 전역 설치
  • 명령어: npm install --global 패키지명

: npm 자체가 설치되어 있는 폴더에 패키지를 설치하여 어디서나 참조할 있게 한다.

: 현재 프로젝트의 node_modules에 설치되지 않으므로, package.json에도 기록되지 않는다.

  • 맥, 리눅스의 경우, sudo를 붙여서 sudo npm install --global 패키지명 으로 설치해야 할 수 있다.(권한 이슈)

  • npm i -g 패키지명 으로 축약 가능

  1. 개발용 설치
  • npm install --save-dev 패키지명
    -> package.json 파일의 devDependencies 항목에
    추가되도록 설치한다.

-> npm i -D 패키지명 으로 축약 가능

  1. package.json 파일을 사용한 설치
  • npm install
    -> package.json 파일이 저장된 폴더에서 명령어를 실행하면,
    dependencies 항목에 기록된 패키지들을 모두 자동으로 설치해 준다.

-> 이 기능을 사용하면, 프로젝트를 복사/백업할 때 모든 모듈 파일을 옮길 필요 없이 package.json 파일만 복사해두면 된다.

-> npm i 로 축약 가능

  1. 패키지 삭제
  • 명령어: npm uninstall 패키지명

: node_modules 폴더에 설치된 패키지를 삭제한다. package.json의 dependencies 항목에서도 제거된다.

  • npm rm 패키지명 으로 축약 가능

기타 NPM 명령어

  1. npm -version
    : npm 자체의 버전 체크
  • npm -v 로 축약 가능
  1. npm install -g npm
    : npm 자체의 버전 업그레이드
  • 맥, 리눅스의 경우 sudo를 앞에 붙여줘야할 수 있다.
  1. npm outdated
    : 업데이트 가능한 패키지가 있는지 체크
  1. npm update 패키지명
    : 패키지를 최신 버전으로 업데이트
  1. npm info 패키지명
    : 패키지의 상세 정보 파악
  1. npm search 검색어
    : npm 서버의 패키지 검색
  1. npm help
    : 명령어 목록 확인
  • npm 명령어 help : 명령어에 대한 설명 및 옵션 정보 확인
  1. npm ls
    : 설치된 패키지들의 구조를 보여준다.
  • npm ls 패키지명: 패키지와 관련된 구조만 노출

  • npm ll : 더 상세한 페캐지 구조 정보 노출

  1. npx 패키지명 [옵션]
    : 전역 설치하지 않은 패키지를 전역처럼 콘솔에서도 사용할 수 있도록 해주는 명령어
  • npx에 대한 내용은 길어질 수 있으므로 생략.

  • 사용 예시: npx pm2 list

package.json > scripts 실행 명령어

: package.json 파일의 scripts 항목에 다양한 명령어를 설정해두고 콘솔에서 실행할 수 있다.

  1. start 명령어에 설정된 코드는 npm start 로 실행할 수 있다.

    • npm stop 으로 start한 걸 멈출 수 있다.

    • npm restart 으로 stop된 걸 재실행할 수 있다.

    • start 명령어를 별도 설정하지 않은 경우, node server.js 가 실행된다.

  1. test 명령어에 설정된 코드는 npm test 로 실행할 수 있다.
  1. 그 외 명령어에 설정된 코드는는 npm run 명령어 로 실행해야 한다.

node.js 가 패키지를 참조하는 방식

: node.js에서 외부모듈(패키지)를 사용하면, 아래와 같은 순서로 패키지를 찾아간다.

  1. 현재 실행 중인 폴더에서 찾는다.(최우선 순위)

  2. 상위 폴더로 이동해서찾는다.

...

  1. 전역 패키지가 설치된 폴더로 이동해서 찾는다.

all -g npm
: npm 자체의 버전 업그레이드

  • 맥, 리눅스의 경우 sudo를 앞에 붙여줘야할 수 있다.

출처: https://curryyou.tistory.com/346 [카레유]

0개의 댓글