본문 바로가기
STUDY/NodeJS

npm install으로 패키지 설치시에 사용되는 옵션들

by Y.Choi 2024. 1. 10.
728x90
반응형

 

-g 또는 --global

npm으로 패키지를 전역(globally)으로 설치하려면 '-g' 옵션을 사용한다. 해당 패키지가 시스템 전체에서 사용 가능하도록 등록되어 이후 다른 프로젝트에서도 별도 설치없이 사용할 수 있다.

npm install -g <package-name>

 

 

만약 패키지가 전역으로 설치되었는지 확인하려면 'npm list -g <package-name>' 명령어를 아래처럼 사용하면 된다.

 

전역설치확인

 

-g로 설치가 되어있다면 해당 패키지 버전정보가 출력되고 아니라면 (empty)라고 출력이 된다.

 

주의 할 것은 프로젝트 별로 의존성 관리를 위해 -g 사용을 해도되는 것과 아닌 것을 잘 구분해야 한다.

nodemon의 경우 프로젝트 내의 기능과 별개로 개발시에만 필요한 것으로, 주로 명령행도구(command-line-tools)등 공통으로 사용되는 것들을 전역으로 설치하면 효율적일 수 있다.

 

 

--save 또는 -S

패키지를 프로젝트의 dependencies에 추가한다. 이는 기본 동작이므로 명시적으로 사용하지 않아도 된다. (npm v5 이상에서는 자동으로 --save가 적용됩니다.)

 

 

--save-dev 또는 -D

패키지를 프로젝트의 devDependencies에 추가한다. 주로 개발 시에만 필요한 패키지를 여기에 추가한다.

npm install --save-dev <package-name>

 

 

--no-save

패키지를 dependencies 또는 devDependencies에 추가하지 않는다. 패키지만 설치하고 프로젝트의 package.json 파일을 수정하지 않는다.

npm install --no-save <package-name>

 

 

--save-exact

패키지의 버전을 정확하게 지정하여 package.json에 추가한다. 정확한 버전이 기록되기 때문에 미래에 npm install 시 항상 동일한 버전이 설치된다

npm install --save-exact <package-name>

 

 

--production

개발 의존성을 제외하고 프로덕션 의존성만 설치한다. --save-dev로 추가된 패키지는 설치되지 않는다.

npm install --production

 

주로 프로덕션 환경에서 애플리케이션을 배포할 때 사용된다. 개발 의존성은 주로 개발 과정에서 필요한 패키지들로, 프로덕션 환경에서는 불필요하며 애플리케이션을 가볍게 유지하려는 목적으로 사용한다.

 

 

728x90

 

--no-optional

선택적 의존성을 설치하지 않는다.

npm install --no-optional

 

/ 패키지 동작에 영향
선택적 의존성이 패키지의 핵심 기능과 관련이 없는 경우에는 --no-optional을 사용해도 큰 문제가 없을 수 있다. 그러나 경우에 따라서 선택적 의존성이 필요한 기능을 제공할 수 있다.

 

/ 기존 설치된 패키지에 영향
이미 설치된 패키지에 선택적 의존성이 포함되어 있다면, --no-optional을 사용하더라도 이미 설치된 패키지에 대한 영향은 없다. 새로운 패키지 설치에만 적용된다.

 

/ 의존성 그래프 간소화
--no-optional을 사용하면 의존성 그래프가 간소화되어 의존성 트리가 더 간단해질 수 있다. 이는 설치 시간을 단축할 수 있다.

 

 

--registry

특정 npm 레지스트리를 사용하여 패키지를 설치한다.

npm install --registry=https://registry.npmjs.org/

 

npm 레지스트리는 패키지가 호스팅되고 버전이 관리되는 서버이다. 개발자들이 npm 패키지를 배포하고, 다운로드하고, 의존성을 해결하는 데 사용된다. 기본적으로 npm은 https://registry.npmjs.org/ 레지스트리를 사용한다.

 

주로 npm 레지스트리를 바꾸어야 하는 환경에서 사용된다. 예를 들어, 회사 내부에서 사용하는 private한 npm 레지스트리를 사용하거나, npm 레지스트리에 접근이 불가능한 경우 사용할 수 있다.

 

대부분의 경우, npm 레지스트리는 디폴트로 설정되어 있고, 일반적인 개발 시나리오에서는 사용자가 직접 레지스트리를 설정할 필요가 없다. 

 

 

--force

의존성 충돌이나 다른 문제가 발생하더라도 강제로 설치를 시도한다.

npm install --force

 

주로 패키지 설치 중에 일부 충돌이나 문제가 있을 때, 이 옵션을 사용하여 설치를 강제로 진행할 수 있다.

하지만 주의해야 한다. 강제로 설치하는 것은 보통 문제의 해결책이 아닐 수 있으며, 해당 문제를 정확히 이해하지 않는 상태에서 사용하는 것은 피하는 것이 좋다. 

 

 

728x90
반응형