Windows에서 npm의 캐시 경로를 변경하거나 캐시를 완전히 비활성화하려면 어떻게해야합니까?


104

Windows 7 x64 개발 컴퓨터에 수동으로 Node.js를 설치했습니다.

mkdir C:\Devel\nodejs
cd C:\Devel\nodejs
set NODE_PATH=%CD%
setx /M PATH "%PATH%;%NODE_PATH%"
setx /M NODE_PATH "%NODE_PATH%\node_modules"

npm 패키지 관리자 와 함께 기본 노드 x64 바이너리 를 . 매력처럼 작동하며 설치 프로그램을 처리하지 않고도 메인 바이너리를 업데이트 할 수 있습니다.C:\Devel\nodejs

내가 해결할 수없는 유일한 문제는 캐시 폴더를 이동하는 것입니다. 로컬 패키지를 설치할 때 :

npm install express

... 캐시는 %APP_DATA%\npm-cache폴더 아래에 있습니다. 다음과 같이 변경하고 싶습니다.

C:\Devel\nodejs\npm-cache

npm 캐시 폴더를 변경하거나 완전히 비활성화하려면 어떻게해야합니까?


1
위치가 안됨 : % APPDATA % \ npm-cache
arni

답변:


159

npm명령 줄을 사용하여 npm 캐시 폴더를 변경할 수 있습니다 . (참조 : https://docs.npmjs.com/misc/config 및 더 구체적으로 https://docs.npmjs.com/misc/config#cache )

따라서 다음 명령을 시도해 볼 수 있습니다.

> npm config set cache C:\Devel\nodejs\npm-cache --global 

3
또한 npmrc 경로로 이동하려는 경우 전역 npmrc 파일은 $ PREFIX에 직접 위치하지 않고 $ PREFIX \ etc에 있습니다
Henry C

3
Cygwin을 사용하여 Windows 7에서이 작업을 수행 할 때 백 슬래시가 제거되지 않도록 모든 백 슬래시 앞에 슬래시를 추가해야했습니다.
TJ.

8
실행 후 npm config list올바른 설정을 확인하기 위해 수행
kampsj

링크 된 문서의 어느 곳에서나 참조하는 명령을 찾는 데 문제가 있습니다
AaA

39

export npm_config_cache=/path/to/cache(Unix) 또는 set npm_config_cache=C:\path\to\cache(Win)을 대신 하여 환경 변수를 설정할 수도 npm config set있습니다 (npm의 모든 구성 옵션에 해당됨).


docker를 사용하는 모든 사람을 위해 런타임에 다음을 사용하여 env var를 추가 할 수 있습니다.

docker run -e npm_config_cache=/path/to/cache mydockerimage:tag

3
이것은 도커에서 사용하기에 적합합니다. Thx
velop

3

다음을 수행 할 수도 있습니다.

원하는대로 캐시 경로를 사용하려면 설치하는 동안 단일 패키지에 대해 :

npm install packageName --cache path/to/some/folder

원하는대로 캐시 경로를 사용하려면 package.json의 모든 패키지에 대해 다음을 수행하십시오.

package.json이 평소와 같이있는 디렉토리에 있고

npm install --cache path/to/some/folder

npm 문서에서 이것을 찾을 수 없지만 npm 6에서 시도했으며 작동합니다. npm 5부터 작동 하는 것 같습니다. [참조 : 설치 명령에서 npm5에 캐시 폴더를 지정하는 방법?


1

Windows에서는 원하는 캐시 폴더로 간단히 cd하고 npm set cache --global


0

또한 업데이트 명령을 실행하는 것도 작동하는 것으로 나타났습니다. 예를 들면 다음과 같습니다.

npm update npm

마지막으로 npm-cache 디렉토리가 채워져 있는지 확인할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.