Node Package Module, 자바스크립트 런타임 환경 Node.js의 기본 패키지 관리자
자바스크립트 환경의 프로젝트에서 사용 빈도가 높다.
node.js를 설치함과 동시에 시스템에 설치된다.
Node프로젝트의 패키지 및 모듈은 npm을 사용해 설치된다.
npm install package-name --globalnpm install package-name -DNode Package eXecute, npm 패키지 실행 도구
npm이 패키지 관리자라면 npx는 실행 도구다.
패키지를 설치하지 않고 실행할 수 있게 도와주는 모듈이다.
모듈을 로컬에 직접 설치하지 않기 때문에 최신 버전의 파일을 불러와 실행 후 삭제하는 방식이다.
글로벌 모듈을 설치하게 되면 몇 가지 문제가 생긴다.
마지막에서 언급한 create-react-app, CRA를 npx를 통해 설치한다면 버전을 신경 쓰지 않아도 된다는 장점이 있다.
가끔 패키지를 설치할 때 --save-dev를 사용하는 경우가 종종 있다.
옵션 없이 npm i package-one 시 package.json의 "dependencies" 필드에 패키지가 작성되어 있다.
npm i package-two --save-dev 와 같이 옵션과 함께 설치하면 "devDependencies" 필드에 패키지가 작성된다.
예시
{
"name": "my-project",
"version": "0.1.0",
"dependencies": {
"package-one": "0.1.1",
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
},
"devDependencies": {
"package-two": "0.1.1",
}
}
필드 이름에서 추측할 수 있듯이 각 필드에 포함되는 패키지는 하나의 프로젝트에서 아래와 같이 구분된다.
dependenciesdevDependencies협업 시 프로젝트를 공유하는 과정에서 node_module을 함께 넘겨주게 되면 용량이 너무 커지기 때문에 구분이 필요하다.
package.json을 넘겨받는다면
npm install
을 통해 dependencies, devDependencies의 패키지 설치가 가능하다.
--production 옵션을 붙여서 install하게되면 devDependencies는 제외하고 설치된다.