[Node.js] npm install
![[Node.js] npm install](/content/images/size/w1920/2024/12/nodejspng-3.png)
npm install
은 Node.js 프로젝트에서 패키지(모듈)를 설치하고 관리하기 위한 핵심 명령어다. 이 명령어를 통해 의존성을 추가하거나, 프로젝트의 모든 의존성을 한 번에 설치할 수 있다. npm install
은 간단해 보이지만, 다양한 옵션과 기능을 제공하며, 이를 깊이 이해하면 프로젝트 관리가 훨씬 더 수월해진다.
npm install
의 기본 개념
기본 동작
npm install
명령어는 Node.js 패키지를 설치하거나, 이미 정의된 의존성을 설치하는 데 사용된다.- 설치된 패키지는
node_modules
디렉토리에 저장된다. - 설치 정보는
package.json
파일에 기록되며, 이를 통해 의존성을 관리할 수 있다.
npm install
의 주요 사용법
1. 모든 의존성 설치
npm install
- *
package.json
*에 기록된 모든dependencies
와devDependencies
를 설치한다. - 프로젝트를 처음 클론했을 때나, 새 환경에서 작업을 시작할 때 사용한다.
- 설치된 패키지는
node_modules
디렉토리에 저장된다.
2. 특정 패키지 설치
npm install <package-name>
- 특정 패키지를 설치하며, 설치된 패키지는 기본적으로 **
dependencies
*에 추가된다.
예:
npm install express
express
가 설치되고, **package.json
*의dependencies
에 기록된다.
"dependencies": {
"express": "^4.18.2"
}
3. 개발용 패키지 설치
npm install <package-name> --save-dev
- 패키지를 **
devDependencies
*에 추가한다. - 개발 환경에서만 필요한 도구들을 설치할 때 사용한다.
예:
npm install eslint --save-dev
eslint
가 설치되고, **package.json
*의devDependencies
에 기록된다.
"devDependencies": {
"eslint": "^8.47.0"
}
4. 글로벌 패키지 설치
npm install -g <package-name>
- 패키지를 전역(global)으로 설치하여, 어디서든 사용할 수 있게 한다.
- 주로 CLI(Command Line Interface) 도구를 설치할 때 사용된다.
예:
npm install -g nodemon
nodemon
이 전역으로 설치되어, 명령어nodemon
을 어디서든 사용할 수 있다.
5. 특정 버전 설치
npm install <package-name>@<version>
- 원하는 버전의 패키지를 설치한다.
- 버전을 명시하지 않으면 기본적으로 최신 버전이 설치된다.
예:
npm install express@4.17.1
express
의4.17.1
버전이 설치된다.
6. 패키지 제거
npm uninstall <package-name>
- 특정 패키지를 제거하며,
dependencies
또는devDependencies
에서도 해당 패키지를 삭제한다.
예:
npm uninstall express
설치 시 중요한 플래그들
1. -save-dev
- 개발용 패키지를 설치하며,
devDependencies
에 추가한다.
2. g
- 패키지를 전역(global)으로 설치한다.
- 보통 패키지별로 나누지 않고 전역에서 사용될때(예, nodemon) 사용한다.
3. -save-exact
- 정확한 버전을 설치하고, 버전 앞에
^
나~
를 생략한다.
예:
npm install lodash --save-exact
package.json
에 정확한 버전만 기록:
"dependencies": {
"lodash": "4.17.21"
}
4. -force
- 충돌이나 오류가 발생해도 강제로 설치를 진행한다.
npm install
의 내부 작동 방식
package.json
확인:- 설치할 패키지가 이미
package.json
에 정의되어 있다면, 해당 정보를 기반으로 설치를 진행한다.
- 설치할 패키지가 이미
package-lock.json
사용:- 정확한 버전 관리를 위해
package-lock.json
파일을 확인하고, 동일한 의존성 구조를 유지하며 설치한다.
- 정확한 버전 관리를 위해
- 패키지 다운로드:
- 패키지를
node_modules
디렉토리에 다운로드한다.
- 패키지를
- 캐싱:
- 다운로드된 패키지는 로컬 캐시에 저장되며, 이후 동일한 패키지를 설치할 때 빠르게 처리된다.
의존성 설치의 두 가지 유형
- dependencies:
- 앱이 실행될 때 반드시 필요한 패키지.
- 배포 환경에서도 설치된다.
- devDependencies:
- 개발 중에만 필요한 패키지.
- 테스트 도구, 코드 품질 검사 도구, 빌드 도구 등이 여기에 해당된다.
실무에서의 사용 사례
- 새 프로젝트 시작:
npm init
으로 프로젝트를 초기화하고,npm install
로 필요한 라이브러리를 추가.
- 협업 시:
- 깃허브에서 프로젝트를 클론한 후,
npm install
을 실행하여 의존성을 설치.
- 깃허브에서 프로젝트를 클론한 후,
- 버전 충돌 해결:
- 정확한 버전을 지정하여 설치하거나,
-save-exact
옵션을 사용하여 일관성 유지.
- 정확한 버전을 지정하여 설치하거나,
- 테스트 환경 구성:
- 테스트 및 개발 도구를
-save-dev
옵션으로 설치하여 환경을 깔끔하게 분리.
- 테스트 및 개발 도구를
마무리하며
npm install
은 단순히 패키지를 설치하는 명령어가 아니다. 프로젝트 의존성을 효율적으로 관리하고, 협업과 배포의 일관성을 유지하는 데 있어 필수적인 도구다. 적절한 옵션과 사용법을 숙지하면, 프로젝트를 보다 체계적으로 관리할 수 있다.
댓글