본문 바로가기
매일 해내는 개발/Develog

[Develog] npm의 --save, --save-dev 등의 플래그와 그 종류

by 해야지 2023. 3. 12.
반응형

npm은 Node.js 패키지 매니저로서, 프로젝트에 필요한 의존성(dependencies)을 관리하는데 사용된다. 의존성은 다른 모듈이나 라이브러리를 포함할 수 있으며, 해당 모듈이나 라이브러리가 제대로 작동하기 위해서는 그에 따른 의존성이 필요하다.

npm에서 플래그란?

npm에서 플래그(Flag)란, 특정한 옵션 또는 설정을 전달하기 위해 npm 명령어와 함께 사용되는 특별한 인자(argument)이다. 플래그는 npm 명령어와 함께 사용되며, 명령어와 함께 전달되어 실행되는 옵션과 설정값을 지정한다.

일반적으로 플래그는 "-" 또는 "--"로 시작하며, 다양한 옵션을 지정할 수 있다. 예를 들어, "npm install" 명령을 사용하여 패키지를 설치할 때, "--save" 플래그를 추가하면 해당 패키지를 package.json 파일에 의존성으로 추가할 수 있다.

또한, npm에서는 다양한 플래그를 제공하여 사용자가 필요한 설정을 유연하게 조정할 수 있도록 지원한다. 이러한 플래그를 사용하면 패키지 설치, 업데이트, 삭제 등의 작업을 더욱 쉽고 효율적으로 수행할 수 있다.

플래그 종류

--save--save-dev 플래그를 사용하여 프로젝트에 필요한 의존성을 추가할 수 있다. 이 플래그들은 package.json 파일의 dependenciesdevDependencies 속성에 패키지 정보를 추가한다.

--save 플래그는 프로덕션 코드에서 실행할 때 필요한 패키지를 설치하는 데 사용한다. 이 패키지들은 애플리케이션의 런타임에 필요한 모듈이며, dependencies 속성에 추가된다.

예를 들어, express 패키지를 설치하고 프로젝트에 추가하려면 다음 명령어를 사용한다.

npm install express --save

이 명령어는 express 패키지를 설치하고 package.json 파일의 dependencies 속성에 패키지 정보를 추가한다.

--save-dev 플래그는 개발 환경에서만 필요한 패키지를 설치하는 데 사용된다. 이 패키지들은 애플리케이션의 빌드나 테스트에 사용되며, devDependencies 속성에 추가된다.

예를 들어, `mocha` 패키지를 설치하고 프로젝트에 추가하려면 다음 명령어를 사용한다.

npm install mocha --save-dev

이 명령어는 mocha 패키지를 설치하고 package.json 파일의 devDependencies 속성에 패키지 정보를 추가한다.

 

그 외 자주 사용되는 플래그는 다음과 같은 것들이 있다.


1. --global (-g) : 패키지를 전역으로 설치한다. 이 플래그를 사용하면 패키지가 전역적으로 사용될 수 있으므로, 다른 프로젝트에서도 사용할 수 있다.

2. --production (-P) : 프로덕션 환경에서만 필요한 의존성을 설치한다. 이 플래그를 사용하면 개발 환경에서 필요하지 않은 패키지를 설치하지 않는다.

3. --verbose (-v) : 자세한 설치 로그를 출력한다. 이 플래그를 사용하면 설치 과정에서 발생하는 모든 정보를 출력한다.

4. --force (-f) : 설치 또는 업그레이드를 강제로 실행한다. 이 플래그를 사용하면 기존 패키지를 덮어쓰거나, 패키지의 버전을 무시하고 최신 버전으로 설치할 수 있다.

5. --ignore-scripts : 패키지 설치 시, 해당 패키지의 스크립트를 실행하지 않는다. 이 플래그를 사용하면 패키지 설치 과정이 더 빠르게 완료될 수 있다.

6. --dry-run : 패키지 설치를 시뮬레이션하여, 실제로 설치되지 않고 어떤 패키지가 설치될 것인지 미리 확인할 수 있다.

7. --registry : 설치할 패키지를 가져올 레지스트리를 지정할 수 있다. 이 플래그를 사용하면 npm 기본 레지스트리 외의 다른 레지스트리에서 패키지를 설치할 수 있다.

반응형

'매일 해내는 개발 > Develog' 카테고리의 다른 글

[Develog] SSR과 CSR 비교  (0) 2023.03.15
[Develog] JAMStack과 정적 사이트 생성기  (0) 2023.03.14
기술 면접 대비 질문과 답 #1  (0) 2023.03.10
[Develog] D-day와 옵저버  (1) 2023.03.09
[Develog] yarn berry  (0) 2023.03.06

댓글