npm install은 Node.js 프로젝트에서 패키지(모듈)를 설치하고 관리하기 위한 핵심 명령어다. 이 명령어를 통해 의존성을 추가하거나, 프로젝트의 모든 의존성을 한 번에 설치할 수 있다. npm install은 간단해 보이지만, 다양한 옵션과 기능을 제공하며, 이를 깊이 이해하면 프로젝트 관리가 훨씬 더 수월해진다.
npm install의 기본 개념npm install 명령어는 Node.js 패키지를 설치하거나, 이미 정의된 의존성을 설치하는 데 사용된다.node_modules 디렉토리에 저장된다.package.json 파일에 기록되며, 이를 통해 의존성을 관리할 수 있다.npm install의 주요 사용법
npm install
package.json에 기록된 모든 dependencies와 devDependencies를 설치한다.node_modules 디렉토리에 저장된다.
npm install <package-name>
dependencies에 추가된다.
npm install express
express가 설치되고, *package.json의 dependencies에 기록된다.
"dependencies": {
"express": "^4.18.2"
}
npm install <package-name> --save-dev
devDependencies에 추가한다.
npm install eslint --save-dev
eslint가 설치되고, *package.json의 devDependencies에 기록된다.
"devDependencies": {
"eslint": "^8.47.0"
}
npm install -g <package-name>
npm install -g nodemon
nodemon이 전역으로 설치되어, 명령어 nodemon을 어디서든 사용할 수 있다.
npm install <package-name>@<version>
npm install express@4.17.1
express의 4.17.1 버전이 설치된다.
npm uninstall <package-name>
dependencies 또는 devDependencies에서도 해당 패키지를 삭제한다.
npm uninstall express
-save-devdevDependencies에 추가한다.g-save-exact^나 ~를 생략한다.
npm install lodash --save-exact
package.json에 정확한 버전만 기록:
"dependencies": {
"lodash": "4.17.21"
}
-forcenpm install의 내부 작동 방식package.json 확인:package.json에 정의되어 있다면, 해당 정보를 기반으로 설치를 진행한다.package-lock.json 사용:package-lock.json 파일을 확인하고, 동일한 의존성 구조를 유지하며 설치한다.node_modules 디렉토리에 다운로드한다.npm init으로 프로젝트를 초기화하고, npm install로 필요한 라이브러리를 추가.npm install을 실행하여 의존성을 설치.-save-exact 옵션을 사용하여 일관성 유지.-save-dev 옵션으로 설치하여 환경을 깔끔하게 분리.npm install packagenamenode_modules 디렉토리에 설치하고, package.json 파일에 아무런 영향을 미치지 않음.dependencies나 devDependencies에 추가되지 않음.package.json 없이도 설치 가능.npm install packagename --savenode_modules 디렉토리에 설치하면서, 동시에 package.json의 dependencies 항목에 추가.package.json 파일의 dependencies 섹션에 설치된 패키지가 기록됨.npm install을 실행할 때 자동으로 설치됨.-save가 불필요하다npm 5.0 이상부터는 -save 옵션이 기본값으로 설정됨.npm install packagename 만 입력해도 자동으로 package.json의 dependencies에 추가됨.npm install packagename --save를 별도로 입력할 필요가 없음.npm install packagename를 사용하면 충분함.-save를 명시적으로 적을 필요가 없어졌기 때문.-save-dev 옵션을 사용해야 함.
npm install packagename --save-dev
package.json의 *devDependencies에 추가됨.npm install packagename를 사용하자.npm install packagename --save-dev를 사용하자.-save는 옛날 방식이므로 굳이 사용할 필요가 없음.dependencies와 devDependencies의 차이dependencies:expressmongoose 같은 라이브러리.package.json에 추가되는 위치:
"dependencies": {
"express": "^4.18.2"
}
devDependencies:eslintjestwebpack 등.package.json에 추가되는 위치:
"devDependencies": {
"eslint": "^8.47.0"
}
npm install의 작동 방식에 따른 차이npm install 실행 시:dependencies와 devDependencies에 있는 모든 패키지가 설치됨.NODE_ENV=production npm install 실행 시:devDependencies는 설치되지 않음.-save-dev를 사용할까?-save-dev가 적합한 경우:jest, mocha)webpack, vite)eslint, prettier)typescript)dependencies가 적합한 경우:express, koa)pg, mongoose)lodash, dayjs)express 설치:
npm install express
dependencies에 추가.jest 설치:
npm install jest --save-dev
devDependencies에 추가.dependencies와 devDependencies를 나눔으로써 패키지의 목적과 용도를 명확히 구분 가능.-save-dev: 개발 중에만 필요한 패키지.dependencies): 실행 환경에서 필요한 패키지.npm init은 Node.js 프로젝트를 시작할 때 반드시 거쳐가는 첫 번째 단계로, 프로젝트의 뼈대를 만드는 역할을 한다. 이 명령어는 단순한 실행 하나로 개발의 시작을 정리하고, 관리의 기반이 되는 package.json이라는 중요한 파일을 생성한다.
npm install은 단순히 패키지를 설치하는 명령어가 아니다. 프로젝트 의존성을 효율적으로 관리하고, 협업과 배포의 일관성을 유지하는 데 있어 필수적인 도구다. 적절한 옵션과 사용법을 숙지하면, 프로젝트를 보다 체계적으로 관리할 수 있다.