-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
주로 프로덕션 환경에서 애플리케이션을 배포할 때 사용된다. 개발 의존성은 주로 개발 과정에서 필요한 패키지들로, 프로덕션 환경에서는 불필요하며 애플리케이션을 가볍게 유지하려는 목적으로 사용한다.
--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
주로 패키지 설치 중에 일부 충돌이나 문제가 있을 때, 이 옵션을 사용하여 설치를 강제로 진행할 수 있다.
하지만 주의해야 한다. 강제로 설치하는 것은 보통 문제의 해결책이 아닐 수 있으며, 해당 문제를 정확히 이해하지 않는 상태에서 사용하는 것은 피하는 것이 좋다.
'STUDY > NodeJS' 카테고리의 다른 글
[인증/권한] 클라이언트와 서버 간의 인증 JWT(JSON Web Token) (0) | 2024.03.28 |
---|---|
비밀번호 해싱 처리를 위한 Mongoose 미들웨어 설정 (0) | 2024.03.27 |
HTTP 모듈로 서버구축 및 실행 (0) | 2024.01.08 |
[3-5] 파일 및 디렉터리 생성, 수정, 삭제 - File System(fs)모듈 (0) | 2024.01.07 |
[3-4] 파일 및 디렉터리 경로 관리를 위한 path모듈 (0) | 2024.01.07 |