Node.js 전용 패키지가 올라가 있는 서버이다.
패키지 업로드/다운로드 및 버전관리 기능을 제공한다.
node.js를 설치할 때 함께 설치된다.
패키지는 남들이 만들어 놓은 외부모듈로, 라이브러리 같은 개념이다.
NPM 공식 사이트: https://www.npmjs.com/
수많은 패키지를 다운받다보면 관리가 어려워진다.
그래서 프로젝트마다 package.json 파일을 만들어서 패키지 목록 및 버전을 관리한다.
1) package name 등의 정보를 입력해준다. 필요 없는 항목은 Enter를 눌러 스킵할 수 있다.
2) 마지막에 Is this OK? 항목에서 yes를 입력해준다.
: 설치한 패키지가 의존하는 다른 패키지도 함께 설치되어 저장된다.
: 외부 모듈인 패키지를 설치/삭제하는 명령어이다.
: 패키지를 현재의 프로젝트의 node_modules 폴더에 설치한다.
: package.json 파일의 dependencies 항목에도 자동으로 추가 된다.
과거에는 dependencies에 패키지를 추가하기 위해 npm install --save 패키지명 으로 설치했으나, npm@5 버전 이후 부터는 디폴트로 적용되므로 --save 옵션을 붙이지 않아도 된다.
npm i 패키지명 으로 축약 사용 가능.
npm install 패키지명@버전 으로 버전을 지정하여 설치 가능
npm install 주소 로 패키지 설치 주소를 지정하여 설치 가능
: 여러개의 패키지를 동시에 설치한다.
: npm 자체가 설치되어 있는 폴더에 패키지를 설치하여 어디서나 참조할 있게 한다.
: 현재 프로젝트의 node_modules에 설치되지 않으므로, package.json에도 기록되지 않는다.
맥, 리눅스의 경우, sudo를 붙여서 sudo npm install --global 패키지명 으로 설치해야 할 수 있다.(권한 이슈)
npm i -g 패키지명 으로 축약 가능
-> npm i -D 패키지명 으로 축약 가능
-> 이 기능을 사용하면, 프로젝트를 복사/백업할 때 모든 모듈 파일을 옮길 필요 없이 package.json 파일만 복사해두면 된다.
-> npm i 로 축약 가능
: node_modules 폴더에 설치된 패키지를 삭제한다. package.json의 dependencies 항목에서도 제거된다.
npm ls 패키지명: 패키지와 관련된 구조만 노출
npm ll : 더 상세한 페캐지 구조 정보 노출
npx에 대한 내용은 길어질 수 있으므로 생략.
사용 예시: npx pm2 list
: package.json 파일의 scripts 항목에 다양한 명령어를 설정해두고 콘솔에서 실행할 수 있다.
start 명령어에 설정된 코드는 npm start 로 실행할 수 있다.
npm stop 으로 start한 걸 멈출 수 있다.
npm restart 으로 stop된 걸 재실행할 수 있다.
start 명령어를 별도 설정하지 않은 경우, node server.js 가 실행된다.
: node.js에서 외부모듈(패키지)를 사용하면, 아래와 같은 순서로 패키지를 찾아간다.
현재 실행 중인 폴더에서 찾는다.(최우선 순위)
상위 폴더로 이동해서찾는다.
...
all -g npm
: npm 자체의 버전 업그레이드
출처: https://curryyou.tistory.com/346 [카레유]