귀하의 생각을 제공하고 진행 상황 업데이트를 신청하려면 이 양식을 작성하세요.
업데이트는 작성자 소프트웨어 LinkedIn 페이지에도 게시됩니다.
Microsoft/npm/Google에서는 Windows 용 Node.js 버전 관리자를 권장합니다.
원본 nvm은 Mac/Linux 전용의 완전히 별도의 프로젝트입니다. 이 프로젝트는 완전히 다른 철학을 사용하며 단순한 nvm의 복제품이 아닙니다. 자세한 내용은 왜 다른 버전 관리자가 필요한가요?에 나와 있습니다. 그리고 큰 차이점은 무엇입니까?.
후원할 수 없나요? Github 스타로 @coreybutler를 지명해 보세요. |
문제가 발생했나요? 일반적인 문제 위키를 참조하세요.
피드백을 구합니다:우리는 Windows용 NVM의 후속 제품인 Runtime(rt)을 개발 중입니다. 잠시 시간을 내어 이 양식을 작성해 주세요. 감사합니다! |
Windows 컴퓨터에서 여러 node.js 설치를 관리합니다.
tl;dr nvm과 유사하지만(동일하지는 않지만) Windows용입니다. 설치 프로그램이 있습니다. 지금 다운로드하세요!
이는 항상 io.js 관리자가 아닌 노드 버전 관리자였으므로 io.js에 대한 지원은 없습니다. 노드 4+가 지원됩니다. nvm install
또는 nvm use
실행할 때 Windows에는 일반적으로 심볼릭 링크 생성을 위한 관리 권한이 필요합니다. 최신 버전의 Node.js를 설치하려면 nvm install latest
실행하세요. 최신 안정 버전을 설치하려면 nvm install lts
실행하세요.
다양한 Node.js 버전 간을 전환하는 기능이 매우 유용할 수 있는 상황이 있습니다. 예를 들어, 안정적인 버전의 노드를 제거하지 않고 최신 최첨단 버전으로 개발 중인 모듈을 테스트하려는 경우 이 유틸리티가 도움이 될 수 있습니다.
Windows용 NVM을 올바르게 실행하는 가장 간단한(권장) 방법은 Windows용 NVM을 설치하기 전에 이전 노드 설치를 제거하는 것입니다. 아래 나열된 모든 함정을 피합니다. 하지만; 고도로 사용자 정의한 경우 Node 설치를 핵폭탄화하고 싶지 않을 수도 있습니다. Windows용 NVM은 기존 설치에 대한 관리를 맡을 수 있지만 여기에는 미묘한 차이가 있습니다(전적으로 설치를 실행하는 사용자의 권한에 따라 다름). 관리 계정이 있는 경우 원래 Node 버전을 제거하기 전에 Windows용 NVM을 설치하는 것이 비교적 안전합니다. 설치/제거가 그룹 정책에 의해 제어되는 기업 Active Directory 환경과 같은 폐쇄된 환경에서 작업하는 경우 NVM4W를 설치하기 전에 Node의 원래 버전을 제거하는 것을 고려해야 합니다.
권한 문제 보안상의 이유로 Windows에서는 한 공급업체의 응용 프로그램이 다른 공급업체의 응용 프로그램을 "제거"하는 것을 허용하지 않습니다. 공식 NVM4W 설치 프로그램은 기존 Node.js 설치를 관리하려고 시도하지만 실제로 원래 Node.js 버전을 제거할 수는 없습니다. 이 문제를 해결하기 위해 Windows용 NVM 설치 프로그램은 원본 Node.js 설치 파일을 NVM 루트에 복사하려고 시도합니다. 여기에는 전역 npm 모듈 및 구성이 포함됩니다. 이 프로세스가 완료되면 데이터 손실 없이 원래 Node.js 설치를 제거할 수 있습니다.
PATH 설치 문제 기존 디렉터리(예: C:Program Filesnodejs
)를 사용하도록 NVM_SYMLINK
를 구성하려고 하면 심볼릭 링크가 물리적 디렉터리를 덮어쓸 수 없기 때문에 실패하게 됩니다. 다른 심볼릭 링크 경로(예: C:nvmnode
)를 선택하는 경우에는 문제가 되지 않습니다.
PATH 충돌 원래 버전을 제거하지 않으면 nvm use
실행해도 아무 작업도 수행되지 않는 것처럼 보일 수 있습니다. node -v
실행하면 항상 원래 설치 버전이 표시됩니다. 이는 동일한 응용 프로그램을 여러 번 설치할 때 발생하는 PATH
충돌 때문입니다. NVM4W 1.1.11+에서는 nvm debug
실행하여 PATH
충돌이 있는지 확인합니다.
단순화를 위해 Windows용 NVM을 사용하기 전에 기존 Node.js 버전을 제거하는 것이 좋습니다. 남아 있을 수 있는 기존 Node.js 설치 디렉터리(예: %ProgramFiles%nodejs
)를 삭제하세요. NVM에서 생성된 심볼릭 링크는 기존(비어 있는 경우에도) 설치 디렉터리를 덮어쓰지 않습니다.
? 전역 npmrc
구성을 백업하시겠습니까 ? (예: %AppData%npmetcnpmrc
)
또는 설정을 사용자 config %UserProfile%.npmrc
에 복사하세요. 전역 모듈 충돌을 방지하려면 기존 npm 설치 위치(예: %AppData%npm
)를 삭제하세요.
최신 설치 프로그램을 사용하십시오(제거 프로그램과 함께 제공). 또는 수동 설치 가이드를 따르세요.
NVM4W가 설치 직후 작동하지 않는 것으로 나타나면 터미널/Powershell을 다시 시작하십시오(전체 컴퓨터가 아님).
설치 후에는 설치된 각 노드 버전에 대해 전역 유틸리티(예: Yarn)를 다시 설치해야 합니다.
nvm use 14.0.0 npm install -g yarn nvm use 12.0.1 npm install -g yarn
v1.1.8부터 업그레이드 프로세스를 자동화하는 업그레이드 유틸리티가 있습니다.
nvm-windows 를 업그레이드하려면 새 설치 프로그램을 실행하세요. node.js 설치를 건드리지 않고도 업데이트해야 하는 파일을 안전하게 덮어씁니다. 동일한 설치 및 심볼릭 링크 폴더를 사용해야 합니다. 원래 기본 위치에 설치한 경우 완료될 때까지 각 창에서 "다음"을 클릭하면 됩니다.
nvm-windows는 관리 셸에서 실행됩니다 . nvm-windows를 사용하려면 관리자 권한으로 powershell
또는 명령 프롬프트를 시작해야 합니다.
Windows용 NVM은 명령줄 도구입니다. 도움을 받으려면 콘솔에 nvm
입력하기만 하면 됩니다. 기본 명령은 다음과 같습니다.
nvm arch [32|64]
: 노드가 32비트 또는 64비트 모드에서 실행 중인지 표시합니다. 기본 아키텍처를 재정의하려면 32 또는 64를 지정합니다.
nvm debug
: NVM4W 프로세스에서 알려진 문제를 확인합니다.
nvm current
: 활성 버전을 표시합니다.
nvm install
: 버전은 특정 버전, 최신 현재 버전의 경우 "latest", 최신 LTS 버전의 경우 "lts"일 수 있습니다. 선택적으로 32비트 또는 64비트 버전을 설치할지 지정합니다(기본값은 시스템 아치). 32비트 및 64비트 버전을 설치하려면 [arch]를 "all"로 설정하세요. 원격 다운로드 서버의 SSL 유효성 검사를 우회하려면 이 명령 끝에 --insecure
추가하세요.
nvm list [available]
: node.js 설치를 나열합니다. 다운로드할 수 있는 버전 목록을 표시하려면 끝에 available
입력하세요.
nvm on
: node.js 버전 관리를 활성화합니다.
nvm off
: node.js 버전 관리를 비활성화합니다(아무 것도 제거하지 않음).
nvm proxy [url]
: 다운로드에 사용할 프록시를 설정합니다. 현재 프록시를 보려면 [url]
비워 두세요. 프록시를 제거하려면 [url]
"없음"으로 설정하세요.
nvm uninstall
: 특정 버전을 제거합니다.
nvm use
: 지정된 버전을 사용하도록 전환합니다. 선택적으로 latest
, lts
또는 newest
사용하십시오. newest
설치된 최신 버전입니다. 선택적으로 32/64비트 아키텍처를 지정합니다. nvm use
선택한 버전을 계속 사용하지만 32/64비트 모드로 전환합니다. 특정 디렉터리에서 use
(또는 .nvmrc
사용)에 대한 자세한 내용은 이슈 #16을 참조하세요.
nvm root
: nvm이 node.js의 다른 버전을 저장해야 하는 디렉터리를 설정합니다.
설정되지 않은 경우 현재 루트가 표시됩니다.
nvm version
: 현재 실행 중인 Windows용 NVM 버전을 표시합니다.
nvm node_mirror
: 노드 미러를 설정합니다. 중국 사용자는 https://npmmirror.com/mirrors/node/를 사용할 수 있습니다.
nvm npm_mirror
: npm 미러를 설정합니다. 중국 사용자는 https://npmmirror.com/mirrors/npm/을 사용할 수 있습니다.
귀하가 설치한 전역 npm 모듈은 귀하가 설치한 다양한 node.js 버전 간에 공유되지 않습니다 . 또한 일부 npm 모듈은 사용 중인 노드 버전에서 지원되지 않을 수 있으므로 작업할 때 환경에 유의하세요.
사용자들은 바이러스 백신, 특히 McAfee를 사용하면서 몇 가지 문제를 보고했습니다. 바이러스 백신 소프트웨어가 VBScript 엔진에 대한 액세스를 조작하고 있는 것 같습니다. 자세한 내용과 해결 방법은 문제 #133을 참조하세요.
v1.1.8은 코드 서명이 아니지만 다른 모든 버전은 Ecor Ventures LLC/Author.io에 의해 서명되었습니다. 이는 대부분의 바이러스 백신 소프트웨어에서 오탐을 방지하는 데 도움이 됩니다.
v1.1.8+는 만료된 인증서로 인해 코드 서명되지 않았습니다(이유는 릴리스 노트 참조). v1.1.9는 새 인증서를 후원한 ajyong 덕분에 코드 서명 되었습니다 .
tldr; npm i -g yarn
자세한 내용은 위키를 참조하세요.
http://golang.org에서 go를 설치하세요.
소스 다운로드 / Git Clone the repo
64비트 실행 파일을 빌드하고 싶다면 build.bat에서 GOARCH를 amd64로 변경하세요.
Windows 명령 프롬프트를 실행하고 디렉터리를 프로젝트 디렉터리로 변경합니다.
실행하고 go get github.com/blang/semver
실행하고 go get github.com/olekukonko/tablewriter
build.bat
실행
생성된 설치 프로그램의 dist
디렉터리를 확인하세요.
node.js에는 여러 버전 관리자가 있습니다. nvm 및 n과 같은 도구는 Mac OSX 및 Linux에서만 실행됩니다. Windows 사용자는 추위에 남아 있습니까? 아니요. nvmw와 nodist는 모두 Windows용으로 설계되었습니다. 그렇다면 Windows용 또 다른 버전 관리자가 필요한 이유는 무엇일까요?
대부분의 Windows용 노드 버전 관리자 아키텍처는 환경 변수를 설정하거나 모방하는 몇 가지 영리한 트릭을 수행하는 .bat
파일을 사용합니다. 그들 중 일부는 노드 자체를 사용합니다(다운로드한 후). 이는 훌륭하지만 문제가 발생하기 쉽습니다. 노드 0.10.30 부근에서 설치 구조가 약간 변경되어 이들 중 일부가 새로운 작업과 함께 작동하지 않게 되었습니다.
또한 일부 사용자는 노드 설치 구조에 대한 지식이 조금 더 필요하기 때문에 이러한 모듈을 설치하는 데 어려움을 겪습니다. 사람들이 버전 간 전환이 더 쉽다면 사람들은 이전 버전과 향후 버전에서 자신의 코드를 테스트하는 데 시간을 할애할 수 있을 것입니다. 이는 좋은 습관입니다.
무엇보다도 이 nvm 버전은 노드에 종속되지 않습니다. 제한된 .bat
파일을 해킹하는 것보다 훨씬 더 구조화된 접근 방식인 Go로 작성되었습니다. 기존 노드 설치에 의존하지 않습니다. Go는 동일한 코드 기반에서 Mac/Linux 버전을 생성하는 기능을 제공합니다. 실제로 이는 이미 진행 중입니다.
제어 메커니즘도 상당히 다릅니다. 핫 스위칭 기능을 사용하여 다중 노드 설치를 지원하는 일반적인 방법에는 두 가지가 있습니다. 첫 번째는 버전을 전환할 때마다 시스템 PATH
수정하거나 .bat
파일을 사용하여 이를 우회하여 노드 실행 파일을 모방하고 그에 따라 리디렉션하는 것입니다. 이것은 항상 나에게 약간 해킹적인 것처럼 보였고 이 구현의 결과로 몇 가지 이상한 점이 있습니다.
두 번째 옵션은 심볼릭 링크를 사용하는 것입니다. 이 개념에서는 시스템 PATH
에 심볼릭 링크를 넣은 다음 해당 대상을 사용하려는 노드 설치 디렉터리로 업데이트해야 합니다. 이것은 간단한 접근 방식이며 사람들이 권장하는 방식인 것 같습니다. Windows에서 심볼릭 링크가 얼마나 고통스러운지 깨닫기 전까지는 말이죠. 이것이 이전에는 그런 일이 일어나지 않았던 이유입니다.
심볼릭 링크를 생성/수정하려면 관리자로 실행해야 하며 Windows UAC(귀찮은 프롬프트)를 둘러봐야 합니다. 운 좋게도 이는 노드 창의 일부 도우미 스크립트를 사용하여 이미 해결한 문제입니다. 결과적으로 Windows용 NVM은 설치 중에만 시스템 PATH
에 배치되는 단일 심볼릭 링크를 유지합니다. 다른 버전의 노드로 전환하는 것은 심볼릭 링크 대상을 전환하는 문제입니다. 결과적으로 이 유틸리티에서는 콘솔 창을 열 때마다 nvm use xxx
실행할 필요가 없습니다 . nvm use xxx
실행 하면 열려 있는 모든 콘솔 창에서 노드의 활성 버전이 자동으로 업데이트됩니다. 이는 시스템 재부팅 후에도 지속되므로 변경하려는 경우에만 nvm을 사용하면 됩니다.
Windows용 NVM은 Fenix Web Server 작업의 부산물인 설치 프로그램과 함께 제공됩니다.
전반적으로 이 프로젝트는 몇 가지 아이디어, 전투를 통해 강화된 몇 가지 다른 모듈 조각 및 최신 버전의 노드에 대한 지원을 결합합니다.
Windows용 NVM은 Node 프로젝트에서 제공하는 목록을 사용하여 "최신" 버전을 인식합니다. 버전 1.1.1+에서는 이 목록을 사용하세요. 이 목록이 존재하기 전에는 릴리스를 스크랩하여 독립형 데이터 피드로 제공했습니다. 이 목록은 버전 1.1.0 이하에서 사용되었지만 현재는 더 이상 사용되지 않습니다.
나는 그것이 간단하고 간단하게 필요했습니다. 또한 여러 버전에 대한 지원이 노드 코어에 제공되지 않는 것이 분명합니다. 바둑을 두기 위한 핑계이기도 했다.
제가 Go를 선택한 이유는 크로스 플랫폼이고, Java보다 오버헤드가 적고, 대부분의 사람들이 생각하는 것보다 오래 사용되었기 때문입니다. 게다가 나는 그것을 실험하고 싶었습니다. 왜 Node로 작성하지 않았는지 질문을 받았습니다. 설치하려는 도구를 사용하여 도구를 작성하려는 것은 나에게는 이해가 되지 않습니다. 결과적으로 이에 대한 내 프로젝트 요구 사항은 간단했습니다. Node.js가 아닌 것이었습니다. 노드는 계속 진화하고 변화할 것입니다. 이에 대한 알림이 필요하다면 io.js, Ayo, 4.xx와 6.xx 사이의 모든 주요 변경 사항, 12+의 ES 모듈로의 전환을 기억하세요. 소프트웨어 세계에서는 변화가 불가피합니다. JavaScript는 매우 동적입니다.
Github 안팎에서 문제를 제출하고, 제안을 하고, 전반적으로 이 프로젝트를 더 나은 프로젝트로 만드는 데 도움을 주신 모든 분들께 감사드립니다. 특별한 감사
초기 릴리스 전반에 걸쳐 중요한 초기 피드백을 제공한 @vkbansal.
Node v4 지원 통합을 위한 @rainabba 및 @sullivanpt.
경로 이름의 오랜 공백 이스케이프 문제를 해결한 @shadow(#355).
2021년 말 코드 서명 인증서를 후원해주신 아정님.