.npmrc 파일이란?
`.npmrc` 파일은 npm(Nodes Package Manager) 설정 파일로, npm의 동작 방식을 사용자 정의할 수 있게 해주는 파일입니다. 이 파일을 통해 npm 명령어의 기본 설정을 지정하거나 특정 프로젝트에 대한 설정을 할 수 있습니다. `.npmrc` 파일은 사용자 환경, 프로젝트 수준, 글로벌 수준 등 다양한 위치에 존재할 수 있으며, 각 위치에 따라 설정의 우선순위가 달라집니다.
`.npmrc` 파일의 주요 용도는 다음과 같습니다:
1. 레지스트리 설정
npm 패키지를 다운로드하거나 업로드할 때 사용할 레지스트리를 지정할 수 있습니다. 예를 들어, 사내에서 사용하는 프라이빗 레지스트리를 설정할 수 있습니다.
registry=https://custom-registry.example.com/
2. 인증 정보 설정
레지스트리에 접근할 때 필요한 인증 토큰이나 자격 증명을 설정할 수 있습니다.
//registry.example.com/:_authToken=YOUR_AUTH_TOKEN
3. 캐시 설정
npm의 캐시 디렉토리를 설정하거나 캐시와 관련된 다양한 옵션을 조정할 수 있습니다.
cache=~/.npm/custom-cache
4. 프록시 설정
회사나 조직의 네트워크 환경에서 프록시를 통해 인터넷에 접속해야 할 때 프록시 설정을 할 수 있습니다.
proxy=http://proxy.example.com:8080
https-proxy=http://proxy.example.com:8080
5. 패키지 설치 옵션
패키지 설치 시 특정 플래그를 기본으로 설정할 수 있습니다. 예를 들어, `package-lock` 파일 생성을 비활성화하거나 개발자 의존성을 설치하지 않도록 설정할 수 있습니다.
package-lock=false
save-exact=true
6. 스크립트 실행 환경 설정
npm 스크립트가 실행되는 환경 변수를 설정할 수 있습니다.
scripts-prepend-node-path=auto
.npmrc 파일의 위치와 우선순위
- 전역 설정: `npm`의 설치 경로에 위치한 `.npmrc` 파일로, 모든 npm 명령어에 적용됩니다. (`$PREFIX/etc/npmrc`)
- 사용자 설정: 사용자 홈 디렉토리에 위치한 `.npmrc` 파일로, 특정 사용자에 대해 적용됩니다. (`~/.npmrc`)
- 프로젝트 설정: 프로젝트 루트 디렉토리에 위치한 `.npmrc` 파일로, 특정 프로젝트에 대해 적용됩니다. (`<project>/npmrc`)
- 기본 설정: npm 설치 경로 내의 `.npmrc` 파일로, npm의 기본 설정을 정의합니다. (`$(npm root -g)/npm/npmrc`)
이렇게 다양한 위치에서 설정을 정의할 수 있으며, npm은 이들 설정 파일을 우선순위에 따라 차례로 읽어들여 적용합니다. 프로젝트 설정이 사용자 설정보다 우선하며, 사용자 설정이 전역 설정보다 우선합니다.
이와 같은 `.npmrc` 파일의 사용으로 npm의 동작을 세밀하게 조정하고, 프로젝트에 특화된 환경을 구성할 수 있습니다.