Windows에서 node.js 모듈의 기본 글로벌 설치 디렉토리를 변경 하시겠습니까?


134

내 Windows 설치 PATH에는 C:\Program Files\nodejs실행 파일 node.exe이 포함되어 있습니다. node쉘뿐만 아니라 시작할 수 npm있습니다. 새로운 실행 파일도 설치하고 싶지만 C:\Program Files\nodejs달성하기가 불가능합니다.

설정 NODE_PATH및 NODE_MODULES변수는 아무 것도 변경하지 않습니다 %appdata%\npm. 기본적으로 여전히 설치되어 있습니다.

글로벌 설치 경로는 어떻게 변경합니까?


5
아마도 gremo가 모든 nodejs 관련 종속성을 한 곳에서 원하기 때문일 수 있습니다. 문제는 nodejs를 업데이트하면 설치된 모든 패키지가 손실된다는 것입니다. 반면에 npm을 사용자의 % appdata % 폴더에 넣으면 같은 컴퓨터에서 다른 사용자가 액세스 할 수 없습니다. 일반 사용자 대 관리자로 설치하십시오.
— Volker E.


1
% AppData %에서 좀 더 통제 된 위치 로 옮기는 것은 나에게 꽤 % temp % -ish 느낌이 들기 때문에 나에게 의미가 있습니다. (Firefox 프로파일 및 다른 몇 가지에 대해서도 동일하게 수행). 그러나 C:\Program Files지속적인 관리 문제가 발생할 수 있습니다. rather 오히려 D:\my-repository\npm그와 같은 행동을하고 싶습니다 .
— Frank Nocke

2
@WiredPrairie는 사용자 폴더에 설치하는 것이 어리석기 때문입니다. 패키지를 '전역 적으로'설치하는 요점은 시스템 전체가 이러한 패키지에 액세스 할 수 있다는 것입니다.
— Michael Trouw

4
내 네트워크에서는 AppData 폴더에서 코드를 실행할 수 없습니다. 종종 멀웨어, 특히 CodeLocker가 다운로드되어 실행되는 방식이기 때문입니다. 멀웨어에 대한 추가 보호 계층입니다. 노드가 설치되어 있기 때문에 설치 위치를 옮기거나 시스템의 보안을 낮추지 않으면 노드 모듈을 실행할 수 없습니다.
— Steve Hiner 2016 년

답변:


81

필요한 것은 npm-folders문서 를 읽는 것 입니다. 나는 그것을 확인할 수 있도록 지금 내 승리의 노트북을 시작하고 싶지 않지만, 당신은 단지 변경해야합니다 prefix으로 c:\Program Files\nodejs설정 파일에. 모든 사용자에 대해 전체적으로 변경하려면 c:\Program Files\nodejs\npmrc파일을 편집 하고 그렇지 않으면 작성 / 편집하십시오 c:\Users\{username}\.npmrc.

그러나이 변경으로 인해 일부 부작용이있을 수 있으므로이 토론을 먼저 읽으십시오 . 나는 당신의 생각이 좋지 않다고 생각합니다.


33
내가 찾은 npmrc에서 파일을C:\path\to\nodejs\node_modules\npm\npmrc
— 폴커 E.

3
또한 npm config set cache <new cache location> --global모듈을 설치하는 동안 문제가 발생하고 캐시가 공유 드라이브에있는 경우 npm 캐시 위치를 로컬 디렉토리로 변경하십시오 . 나는이 오류가 발생했습니다 ENOENT: no such file or directory캐시가 공유 드라이브에있을 때
— 레드 데블

1
새로운 npm 폴더를 가리 키도록 시스템 PATH 변수를 업데이트하는 것을 잊지 마십시오.
— Hayko Koryun

64

설치하려고 세계 로 포장하는 것은 C:\Program Files (x86)\nodejs\나에게 준 관리자로 실행 NPM은에 설치하려고했기 때문에, 문제
C:\Program Files (x86)\nodejs\node_modules\

이를 해결하려면 글로벌 설치 디렉토리를 C:\Users\{username}\AppData\Roaming\npm다음으로 변경하십시오 .

에서 내용이 포함 된 파일을 C:\Users\{username}\만듭니다 .npmrc.

prefix = "C:\\Users\\{username}\\AppData\\Roaming\\npm"

참고

Windows 7 Ultimate N 64 비트 SP1의 환경
nodejs x86 설치 프로그램 : v0.10.28 : 1.4.10C:\Program Files (x86)\nodejs\
node --version
npm --version


이것은 npm 2.1.6을 사용하고 이상하고 % appdata % / npm에 모든 전역 모듈을 설치하는 중입니다. 이제 2.6.1로 업데이트 했으므로 c : \ windows \에 설치하려고 계속 시도하고 실패합니다. 프로그램 파일 \ ..이 동작이 언제 바뀌 었는지 알고 있습니까?
— WORMSS

1
여기에 몇 가지의 노드 위키 차이점
— 제이크 버거

그것은 npm을 설치 한 다른 방법과 관련이있는 것 같습니다. 그래도 감사합니다.
— WORMSS

2
npm 구성 집합 접두사 C : \ Users \ {username} \ AppData \ Roaming \ npm
— Bernhard Döbler

62

당신은 이것에 대한 나의 대답을 다른 질문에 대한 나의 대답 에서 볼 수 있습니다 .


Windows에서 글로벌 설치 경로는 실제로 사용자의 프로파일 디렉토리에 있습니다.

  • %USERPROFILE%\AppData\Roaming\npm
  • %USERPROFILE%\AppData\Roaming\npm-cache
  • 경고 : 다른 사용자로 시간 초과 이벤트 또는 기타 자동화를 수행 npm install하는 경우 해당 사용자로 실행해야합니다 . 일부 모듈 / 유틸리티는 전체적으로 설치해야합니다.
  • 설치자 버그 :이 디렉토리를 작성하거나 ...\npm사용자 경로에 디렉토리를 직접 추가해야 할 수도 있습니다 .

모든 사용자의 "전역"위치를보다 적절한 공유 전역 위치 %ALLUSERSPROFILE%\(npm|npm-cache)로 변경하려면 (관리자로서 수행) :

  • 만들 [NODE_INSTALL_PATH]\etc\디렉토리를
    • 이것은 npm config --global ...행동 을 시도하기 전에 필요합니다
  • npm 모듈의 전역 (관리자) 위치를 만듭니다.
    • C:\ProgramData\npm-cache -npm 모듈이 여기에 있습니다
    • C:\ProgramData\npm -전 세계적으로 설치된 모듈의 바이너리 스크립트가 여기에 있습니다
    • C:\ProgramData\npm\node_modules -전 세계적으로 설치된 모듈이 여기에 있습니다
    • 권한을 적절하게 설정하십시오
      • 관리자 : 수정
      • 인증 된 사용자 : 읽기 / 실행
  • 글로벌 구성 설정 (관리자 명령 프롬프트)
    • npm config --global set prefix "C:\ProgramData\npm"
    • npm config --global set cache "C:\ProgramData\npm-cache"
  • 추가 C:\ProgramData\npm시스템의 PATH 환경 변수에

사용자의 "전역"위치를 %LOCALAPPDATA%\(npm|npm-cache)대신 경로 로 변경하려면 다음을 수행하십시오 .

  • 필요한 디렉토리를 만듭니다
    • C:\Users\YOURNAME\AppData\Local\npm-cache -npm 모듈이 여기에 있습니다
    • C:\Users\YOURNAME\AppData\Local\npm -설치된 모듈의 바이너리 스크립트가 여기에 있습니다
    • C:\Users\YOURNAME\AppData\Local\npm\node_modules -전 세계적으로 설치된 모듈이 여기에 있습니다
  • npm 구성
    • npm config set prefix "C:\Users\YOURNAME\AppData\Local\npm"
    • npm config set cache "C:\Users\YOURNAME\AppData\Local\npm-cache"
  • 환경에 새 npm 경로를 추가하십시오 PATH.
    • setx PATH "%PATH%;C:\Users\YOURNAME\AppData\Local\npm"

1
중간 제안에 따라 전역 위치를 C : \ ProgramData로 설정하는 것이 Windows 환경에서 가장 적합한 장소 인 것처럼 보이지만 접두어를 사용할 때 전역 구성 파일에서 접두어를 설정하는 방법을 볼 수 없습니다. 전역 설정 파일을 찾으십시오. 내장 구성 파일 C : \ Program Files \ nodejs \ node_modules \ npm \ npmrc를 편집하여 동일한 결과를 얻었지만 일부 단계에서 업데이트 로이 변경 사항을 덮어 쓸 수 있습니다.
— oenpelli

@oenpelli이 경우 "global"은 .npmrchome / profile 디렉토리 의 사용자 파일입니다. 모든 사용자에 대해 설정해야합니다.
— 트래커 1

Windows에 대한 관리자 권한이없는 경우 전역 설치를 어떻게 변경할 수 있습니까?
— liam xu

.npmrcliam, 프로필 디렉토리 의 파일을 통해 사용자에 맞게 이것을 조정할 수 있습니다 .
— Tracker1

19

설치 개념을 기반으로 chocolatey@Tracker가 제안한 과 아이디어를 바탕으로 저에게 도움이 된 것은 다음을 수행하는 것이 었으며 Windows의 모든 사용자는 nodejsand으로 작업하게되어 기뻤습니다 npm.

고르다 C:\ProgramData\nodejs 에 대한 설치 디렉토리로 nodejs설치 nodejs관리자 그룹의 구성원 인 사용자로.

이것은 다음과 같이 초콜릿으로 할 수 있습니다. choco install nodejs.install -ia "'INSTALLDIR=C:\ProgramData\nodejs'"

그런 다음라는 폴더를 만듭니다 npm-cache 설치 디렉토리의 루트에C:\ProgramData\nodejs\npm-cache .

etc설치 디렉토리의 루트에 폴더를 생성하십시오.C:\ProgramData\nodejs\etc .

NODE환경 변수를 다음과 같이 설정하십시오.C:\ProgramData\nodejs .

NODE_PATH환경 변수를 다음과 같이 설정하십시오.C:\ProgramData\nodejs\node_modules .

%NODE%위에서 생성 한 환경 변수가 추가 되었는지 (또는 경로) 추가 되었는지 확인하십시오.%PATH% .

편집하다 %NODE_PATH%\npm\npmrc다음 내용으로prefix=C:\ProgramData\nodejs

명령 프롬프트에서 전역 구성을 다음과 같이 설정하십시오.

npm config --global set prefix "C:\ProgramData\nodejs"

npm config --global set cache "C:\ProgramData\nodejs\npm-cache"

위의 단계는 npm ( npm -g install npm@latest)을 업데이트 하거나 npm모듈 을 설치 하기 전에 순서대로 수행하는 것이 중요합니다 .

위의 단계를 수행하면 nodejs적절한 권한을 가진 모든 사용자가 쉽게 사용할 수있는 시스템 전체 설치로 실행하는 데 도움이되었습니다 . 각 사용자는 실행할 수 node와 npm같은 필요합니다.


'npm config list'의 출력은 무엇입니까? 또한 Windows 또는 Linux에서 실행 중입니까?
— Damilola

둘 다 시도했다. npm config add prefix작동하지만 여기에 언급 된 환경 변수는 없습니다. 이 질문이 다루기 때문에 다른 질문을 열고 싶지 않았지만 답변은 (이외 npm config)입니다.
— trysis

NODE 환경 변수는 본질적으로 바이너리를 노출시키는 것입니다. 절차에서 언급 한대로 여전히 접두사와 캐시 (이전에 설정되지 않은 경우)를 설정해야합니다.
— Damilola

오 감사합니다. 답변이나 Google의 다른 곳에서는 명확하지 않았습니다. 프로그래밍 방식으로 변경하기 쉬운 환경 변수를 찾고 있었지만 한 줄짜리 Bash 명령도 괜찮습니다.
— trysis

이것은 나를 위해 아름답게 작동했습니다. 자세한 지침에 감사드립니다!
— ErnestoP

15

npm 패키지의 전체 설치 위치를 설정하려면이 명령을 사용해야합니다.

(git bash) npm config --global set prefix </path/you/want/to/use>/npm

(cmd / git-cmd) npm config --global set prefix <drive:\path\you\want\to\use>\npm

npm-cache바로 옆에 위치를 고려할 수도 있습니다 . (Windows의 일반 nodejs 설치에서와 같이)

(git bash) npm config --global set cache </path/you/want/to/use>/npm-cache

(cmd / git-cmd) npm config --global set cache <drive:\path\you\want\to\use>\npm-cache


1
기쁘다. 또한 환경을 변경할 때마다이를 실행하기 위해 쉘 스크립트 또는 배치 파일을 작성하는 것이 좋습니다. 적어도 그것이 ID의 역할입니다
— davejoem

경로에 공백이있는 경우 또한 가치는 "추가 예. "C:\Program Files\blah".
— taylorswiftfan

7
  • 1 단계 :

    npm config get prefix

    • 기본 경로는 다음과 같습니다. %USERPROFILE%\AppData\Roaming\npm
  • 2 단계 :

    npm 구성 캐시 가져 오기

    • 기본 경로는 다음과 같습니다. %USERPROFILE%\AppData\Roaming\npm-cache
  • 3 단계 :

    npm 구성 세트 접두사 \ npm

    • 예 npm config set prefix C:\\dev\\node\\npm
  • 4 단계 :

    npm 구성 세트 캐시 \ npm-cache

    • 예 npm config set cache C:\\dev\\node\\npm-cache

1 단계와 2 단계를 다시 실행하여 필요에 따라 경로가 업데이트되는지 확인하십시오.

그게 다야. 전역 패키지를 설치할 때마다 \ npm \ node_modules 안에 설치되어 있어야합니다.


귀하의 솔루션이 문제를 해결하려고 지난 2 주 동안 내 문제를 해결해 주셔서 감사합니다. 실제로 내 Windows 사용자 경로에는 ABC XYZ WJS와 같이 공백이 있으므로 내 npm 설치가 제공된 후 경로를 한 단어로 변경했습니다. 오류가 발생하면 솔루션을 통해 캐시를 지우고 캐시를 새 위치로 설정할 수 있습니다.
— Tahir Afridi

4

기본 전역 폴더는 C:\Users\{username}\AppData\Roaming\npm입니다. .npmrc파일을 만들고 (존재하지 않는 경우) C:\Users\{username}\추가 할 수 있습니다 prefix = "path\\to\\yourglobalfolder". 창에서 경로는로 구분해야합니다 double back-slash.



1

Windows에서 디스크 C의 npm 또는 nodejs 폴더를 다른 위치로 이동하지만 여전히 노드와 npm이 제대로 작동하도록하려면 다음과 같이 symlink를 작성할 수 있습니다. 명령 프롬프트 열기 :

mklink /D "your_location_want_to_create_symlink" "location_of_node_npm_file"

예:

mklink /D "C:\Users\MyUser\AppData\Roaming\npm" "D:\Nodejs Data\npm"

이제 npm 폴더에 대한 심볼릭 링크를 만들었습니다.이 심볼릭 링크는 D:\Nodejs Data\npm모든 것이 잘 작동 함을 나타냅니다.


0

나는 대부분의 대답을 시도했지만 내 경우에는 아무것도 효과가없는 것 같습니다. 그래서 env 변수의 임시 위치를 C : \ npm으로 변경했습니다. 그런 다음 작동하기 시작했습니다. 이것은 좋은 생각이 아니라 임시 해결책입니다.


0

프로그램 파일 폴더에서 노드 폴더를 완전히 삭제하십시오. node.js를 설치 제거한 후 다시 설치하십시오. 환경 변수 PATH의 경로를 변경하십시오. C : \ users \ yourusername에서 .npmrc 파일을 삭제하십시오.


2
귀하의 진술을 뒷받침하는 문서 나 출처가 있습니까? 현재 상태로 작성된 것처럼 제안을 실제로 시도하지 않고 실제로 작동하는지 여부를 말하기는 어렵습니다. 그렇지 않으면 시간을 절약 할 수 있습니다.
— Filnor

0

많은 구성이 필요하지 않습니다. 고급 시스템 설정으로 이동하십시오. 노드를 설치 한 경로를 복사하고 환경 변수를 작성하고 프롬프트에서 node -v 명령으로 확인하십시오!


0

Windows에서 node.js (npm) 모듈의 기본 글로벌 설치 디렉토리를 변경하려면 2 개의 경로를 수정해야합니다.

다음 명령을 사용하여 전체적으로 설치하려고 할 때 노드 모듈이 설치되는 현재 경로를 확인하십시오.

npm 목록 -g --depth = 0

현재 노드 모듈이 설치되어있는 현재 경로를 반환합니다. 예 : D : \ vsc \ typescript

이제 npm 및 npm-cache 폴더를 보려면 다음 경로를 방문하십시오. C : \ Users \ 사용자 이름 (또는 번호) \ AppData \ Roaming

C 드라이브의 로밍 폴더에는 npm 및 npm-cache 폴더가 있습니다. + npm + 폴더를 클릭하고 경로를 선택하십시오 [막대기 경로를 클릭하면 자동으로 선택되어 복사됩니다]. 선택해야 할 경로 이미지입니다.

이 경로를 복사하면 변수 이름 Path (이름으로 선택할 수있는 것)와 함께 환경 변수로 설정하십시오. 이제 npm 폴더의 경로를 설정했습니다. 이제 접두사를 설정할 차례입니다. npm 폴더로 이동하여 node_modules라는 새 폴더를 만들지 않으면 node_module 폴더가 있는지 확인하십시오. 모든 단계를 완료하면 모든 전역 모듈이이 폴더에 들어갑니다.

마지막 단계 : CMD로 이동하여 다음 명령을 수행하십시오.

npm 세트 접두사 C : \ Users \ username (Number) \ AppData \ Roaming \ npm \ node_modules

다시 이것은 환경 변수에 대해 선택한 것과 동일한 경로입니다. 경로에 하나 이상의 폴더를 추가하고 있으며 이는 node_module입니다.

모두 설정 .... 지금 시도 ... 작동합니다 ..


0

다음 명령으로 글로벌 노드 패키지 설치의 현재 경로를 찾으십시오.

npm 목록 -g --depth = 0

다음 명령에 따라이 경로를 올바른 경로로 변경하십시오.

npm 세트 접두사 C : \ Users \ username (Number) \ AppData \ Roaming \ npm \ node_modules

그것은 나를 위해 일했다. 더 나은 이해를 위해 이전 답변을 읽으십시오.

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