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


134

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

설정 NODE_PATHNODE_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적절한 권한을 가진 모든 사용자가 쉽게 사용할 수있는 시스템 전체 설치로 실행하는 데 도움이되었습니다 . 각 사용자는 실행할 수 nodenpm같은 필요합니다.


'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.