2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

npm의 npm install --global과 --local의 차이는 무엇인가요?

_____
Q: npm install --global과 npm install --local의 차이는 무엇인가요?

A: npm에서 `install` 명령어에 사용할 수 있는 `--global` 옵션과 `--local` 옵션은 패키지를 설치하는 위치와 용도가 다릅니다.

---

1. `npm install --global` (또는 `npm install -g`)

- 설명: 패키지를 전역(global)으로 설치합니다.
- 설치 위치: 운영체제의 전역 npm 디렉터리 (예: Windows의 경우 `%APPDATA%\npm`, macOS/Linux의 경우 `/usr/local/lib/node_modules` 등).
- 사용 대상: CLI 도구, 명령어 실행이 필요한 패키지(예: `eslint`, `typescript`, `nodemon`) 등 컴퓨터 어디에서든 커맨드라인에서 직접 명령어로 실행하고자 할 때.
- 특징:
- 설치 후 전역 경로가 시스템 PATH에 포함되어 있어 직접 명령어 실행 가능.
- 여러 프로젝트에서 동일한 버전의 패키지를 공유할 때 유용.
- 예:
```bash
npm install -g typescript
tsc --version tsc 명령어를 어디서든 사용 가능
```

---

2. `npm install --local` (또는 기본 `npm install`)

- 설명: 패키지를 현재 프로젝트(로컬) 디렉터리에 설치합니다. 사실 `--local` 옵션은 명시적으로 존재하지 않고, 기본 동작으로 간주됩니다.
- 설치 위치: 현재 프로젝트 폴더 내의 `node_modules` 디렉터리에 설치.
- 사용 대상: 코드에서 직접 임포트(import)하거나 require 하는 라이브러리, 그 프로젝트 의존성 관리.
- 특징:
- `package.json`의 `dependencies` 또는 `devDependencies`에 자동 등록 가능.
- 프로젝트 별로 서로 다른 버전의 패키지를 관리할 수 있음.
- CLI 명령어가 있지만 프로젝트 범위 내에서만 사용 가능하거나 npm 스크립트를 통해서 주로 실행.
- 예:
```bash
npm install lodash
```
- 이렇게 설치하면, 프로젝트 내에서 `require('lodash')` 또는 `import _ from 'lodash'` 가능.

---

정리

| 구분 | `--global` | `--local` (기본) |
| -------------- | --------------------------------------- | ----------------------------------------- |
| 설치 위치 | 전역 디렉터리 | 현재 프로젝트의 `node_modules` |
| 사용 목적 | CLI 도구 및 시스템 전역에서 사용 가능한 명령어 | 프로젝트별 라이브러리 및 의존성 관리 |
| PATH 포함 여부 | 전역 PATH에 추가되어 시스템 전체에서 사용 가능 | PATH에 포함되지 않음, 프로젝트에서 import 사용 |
| package.json | 자동 업데이트 안 될 수 있음 | 자동으로 `package.json`에 의존성 등록 |
| 사용 예 | `npm install -g eslint` | `npm install react` |

---

추가 팁

- 전역 설치는 시스템 레벨 권한 문제가 발생할 수 있으므로, 권한 문제 시 `npm` 대신 `npx` 사용이나, 환경 설정 변경을 고려하세요.
- 최신 npm에서는 전역 설치보다 `npx`를 활용해서 한 번만 실행하는 CLI 명령어 사용을 권장하기도 합니다.

---

요약:
- `--global`은 전역적으로 어디서나 CLI 명령어를 사용하고자 할 때 패키지를 설치하는 옵션입니다.
- 기본 install 명령어(=로컬 설치)는 프로젝트 단위로 라이브러리를 설치하며, 소스코드에서 임포트해서 사용합니다.
`npm`(Node Package Manager)은 Node.js의 패키지 관리 도구로, JavaScript 라이브러리와 패키지를 설치하고 관리하는 데 사용됩니다.

`npm install` 명령어는 패키지를 설치하는 데 사용되며, 이때 `--global`과 `--local` 옵션을 통해 설치 위치를 지정할 수 있습니다.

이 두 옵션의 차이는 다음과 같습니다.

1. `--global` 설치 - 설치 위치 : `--global` 옵션을 사용하면 패키지가 전역적으로 설치됩니다.

이는 시스템의 모든 프로젝트에서 해당 패키지를 사용할 수 있도록 해줍니다.

전역 설치는 일반적으로 CLI(Command Line Interface) 도구와 같이 여러 프로젝트에서 공통적으로 사용되는 패키지에 적합합니다.

- 경로 : 전역 패키지는 일반적으로 Node.js가 설치된 디렉토리의 `node_modules` 폴더에 위치합니다.

이 경로는 운영 체제에 따라 다를 수 있으며, 일반적으로 `/usr/local/lib/node_modules`(macOS/Linux) 또는 `C:\Users\\AppData\Roaming\npm\node_modules`(Windows)와 같은 경로에 설치됩니다.

- 사용 예 : 예를 들어, `npm install --global typescript` 명령어를 실행하면 TypeScript가 전역적으로 설치되어, 터미널에서 `tsc` 명령어를 통해 TypeScript 컴파일러를 사용할 수 있게 됩니다.

- 장점 : 전역 설치는 여러 프로젝트에서 동일한 패키지를 공유할 수 있어, 패키지를 중복 설치할 필요가 없고, 시스템 전체에서 쉽게 접근할 수 있습니다.

- 단점 : 전역 설치는 특정 프로젝트에 대한 의존성을 명확히 하지 않기 때문에, 프로젝트 간의 패키지 버전 충돌이 발생할 수 있습니다.

또한, 전역 패키지는 시스템 권한이 필요할 수 있습니다.



2. `--local` 설치 - 설치 위치 : `--local` 옵션은 기본적으로 `npm install` 명령어의 기본 동작입니다.

이 경우 패키지는 현재 작업 중인 프로젝트의 `node_modules` 폴더에 설치됩니다.

이는 해당 프로젝트에서만 사용할 수 있도록 제한됩니다.

- 경로 : 로컬 패키지는 프로젝트의 루트 디렉토리에 위치한 `node_modules` 폴더에 설치됩니다.

예를 들어, `my-project`라는 디렉토리에서 `npm install express`를 실행하면, `my-project/node_modules/express` 경로에 설치됩니다.

- 사용 예 : 로컬 설치는 특정 프로젝트에 필요한 라이브러리나 패키지를 설치할 때 사용됩니다.

예를 들어, `npm install express`를 통해 Express.js 웹 프레임워크를 설치하면, 해당 프로젝트에서만 Express를 사용할 수 있습니다.

- 장점 : 로컬 설치는 프로젝트의 의존성을 명확히 관리할 수 있게 해주며, 각 프로젝트마다 서로 다른 버전의 패키지를 사용할 수 있습니다.

이는 프로젝트 간의 충돌을 방지하고, 각 프로젝트의 독립성을 유지하는 데 도움이 됩니다.

- 단점 : 로컬 패키지는 해당 프로젝트에서만 사용할 수 있기 때문에, 여러 프로젝트에서 동일한 패키지를 사용할 경우 중복 설치가 필요합니다.

결론 `npm install --global`과 `npm install --local`은 패키지를 설치하는 위치에 따라 다릅니다.

전역 설치는 시스템 전체에서 접근할 수 있는 반면, 로컬 설치는 특정 프로젝트에 국한됩니다.

패키지를 설치할 때는 사용 목적에 따라 적절한 옵션을 선택하는 것이 중요합니다.

일반적으로 CLI 도구와 같이 여러 프로젝트에서 사용될 패키지는 전역으로 설치하고, 특정 프로젝트에만 필요한 라이브러리는 로컬로 설치하는 것이 좋습니다.

작성자: 김민수 [비회원] | 작성일자: 1년 전 2024-09-13 09:24:32
조회수: 247 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.