填寫此表格以提供您的想法並註冊進度更新。
更新也將發佈在 Author Software LinkedIn 頁面上。
Microsoft/npm/Google 推薦適用於Windows的 Node.js 版本管理器。
最初的 nvm 是一個完全獨立的項目,僅適用於 Mac/Linux。這個項目使用了完全不同的理念,而不僅僅是 nvm 的克隆。詳細資訊列於為什麼另一個版本管理器?最大的差別是什麼?
不能贊助嗎? 考慮提名 @coreybutler 為 Github 之星。 |
遇到問題?請參閱常見問題 wiki。
尋求回饋:我們正在開發 Runtime (rt),它是 NVM For Windows 的後繼者。請花一分鐘填寫此表格。謝謝你! |
管理 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 之間切換的能力可能非常有用。例如,如果您想測試使用最新前沿版本開發的模組而不卸載穩定版本的節點,則此實用程式可以提供協助。
讓 NVM for Windows 正常運作的最簡單(建議)方法是在安裝 NVM for Windows之前卸載任何先前安裝的 Node。它避免了下面列出的所有陷阱。然而;如果您已經高度自訂了 Node 安裝,您可能不希望對其進行破壞。 NVM for Windows可以承擔現有安裝的管理,但這有細微差別(完全取決於執行安裝的使用者的權限)。如果您有管理帳戶,則在卸載原始 Node 版本之前安裝適用於 Windows 的 NVM 相對安全性。如果您在封閉環境中工作,例如安裝/卸載由群組原則控制的企業 Active Directory 環境,那麼您確實應該考慮在安裝 NVM4W 之前刪除 Node 的原始版本。
權限問題出於安全性原因,Windows 不允許一個供應商的應用程式「卸載」另一家供應商的應用程式。官方 NVM4W 安裝程式將嘗試管理現有的 Node.js 安裝,但它實際上無法卸載原始 Node.js 版本。為了解決此問題,NVM for Windows 安裝程式會嘗試將原始 Node.js 安裝檔案複製到 NVM 根目錄。這包括全域 npm 模組和配置。此過程完成後,可以卸載原始 Node.js 安裝而不會遺失資料。
PATH 安裝問題如果您嘗試將NVM_SYMLINK
設定為使用現有目錄(例如C:Program Filesnodejs
),則會失敗,因為符號連結無法覆寫實體目錄。如果您選擇不同的符號連結路徑(例如C:nvmnode
),這不是問題。
路徑衝突如果您不卸載原始版本,則執行nvm use
可能看起來根本不執行任何操作。運行node -v
將始終顯示原始安裝版本。這是由於多次安裝相同應用程式時會出現PATH
衝突。在 NVM4W 1.1.11+ 中,執行nvm debug
以確定是否有PATH
衝突。
為簡單起見,我們建議在使用適用於 Windows 的 NVM 之前卸載任何現有版本的 Node.js。刪除可能保留的任何現有 Node.js 安裝目錄(例如%ProgramFiles%nodejs
)。 NVM 產生的符號連結不會覆寫現有的(甚至是空的)安裝目錄。
?備份任何全域npmrc
配置嗎? (例如%AppData%npmetcnpmrc
)
或者,將設定複製到使用者配置%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 在 Admin shell 中運作。您需要以管理員身分啟動powershell
或命令提示字元才能使用 nvm-windows
Windows 版 NVM 是命令列工具。只需在控制台中輸入nvm
即可獲得幫助。基本指令是:
nvm arch [32|64]
:顯示節點是否在 32 位元或 64 位元模式下運作。指定 32 或 64 以覆寫預設體系結構。
nvm debug
:檢查 NVM4W 進程是否有已知問題。
nvm current
:顯示活動版本。
nvm install <version> [arch]
:版本可以是特定版本,「latest」表示最新的目前版本,「lts」表示最新的 LTS 版本。可選擇指定安裝 32 位元還是 64 位元版本(預設為系統 arch)。將 [arch] 設定為“all”以安裝 32 和 64 位元版本。在此命令末尾新增--insecure
以繞過遠端下載伺服器的 SSL 驗證。
nvm list [available]
:列出 node.js 安裝。在末尾鍵入available
以顯示可供下載的版本清單。
nvm on
:啟用node.js版本管理。
nvm off
:停用node.js版本管理(不卸載任何東西)。
nvm proxy [url]
:設定用於下載的代理程式。將[url]
留空以查看目前代理程式。將[url]
設定為“none”以刪除代理。
nvm uninstall <version>
:卸載特定版本。
nvm use <version> [arch]
:切換使用指定版本。可以選擇使用latest
、 lts
或newest
。 newest
是最新安裝的版本。可選擇指定 32/64 位元架構。 nvm use <arch>
將繼續使用所選版本,但切換到 32/64 位元模式。有關在特定目錄中使用use
(或使用.nvmrc
)的信息,請參閱問題 #16。
nvm root <path>
:設定nvm應儲存不同版本的node.js的目錄。如果未設定<path>
,則將顯示目前根目錄。
nvm version
:顯示目前執行的 Windows NVM 版本。
nvm node_mirror <node_mirror_url>
:設定節點鏡像。
nvm npm_mirror <npm_mirror_url>
:設定npm鏡像。
請注意,您可能安裝的任何全域 npm 模組不會在您安裝的各個版本的 Node.js 之間共用。此外,您使用的 Node 版本可能不支援某些 npm 模組,因此在工作時請注意您的環境。
使用者報告了使用防毒軟體(特別是 McAfee)時出現的一些問題。防毒軟體似乎正在操縱對 VBScript 引擎的存取。有關詳細資訊和解決方案,請參閱問題 #133。
v1.1.8 未進行程式碼簽名,但所有其他版本均由 Ecor Ventures LLC/Author.io 簽署。這應該有助於防止大多數防毒軟體出現誤報。
由於憑證過期,v1.1.8+ 未對代碼進行簽署(有關原因,請參閱發行說明)。 v1.1.9的代碼簽名歸功於 ajyong,他贊助了新證書。
太棒了; npm i -g yarn
詳細資訊請參閱維基百科。
從 http://golang.org 安裝 go
下載原始碼 / Git 克隆儲存庫
如果您想要建立 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用戶被冷落了?不。那麼,為什麼還要為 Windows 提供另一個版本管理器呢?
Windows 的大多數節點版本管理器的體系結構都依賴.bat
文件,這些文件使用一些巧妙的技巧來設定或模擬環境變數。其中一些使用節點本身(一旦下載),這是令人欽佩的,但容易出現問題。就在節點 0.10.30 左右,安裝結構發生了一些變化,導致其中一些停止使用任何新內容。
此外,一些用戶很難安裝這些模組,因為它需要對節點的安裝結構有更多的了解。我相信,如果人們更容易在版本之間切換,人們可能會花時間在過去和未來的版本上測試他們的程式碼......這只是一個很好的做法。
首先也是最重要的是,這個版本的 nvm 不依賴 Node。它是用 Go 編寫的,這是一種比破解有限的.bat
檔案更加結構化的方法。它不依賴現有的節點安裝。 Go 提供了在相同程式碼庫上建立 Mac/Linux 版本的能力。事實上,這已經在進行中。
控制機制也有很大不同。有兩種支援具有熱切換功能的多節點安裝的通用方法。第一種是在切換版本時修改系統PATH
,或使用.bat
檔案模仿節點可執行檔並相應地重定向來繞過它。這對我來說總是顯得有點老套,而且這種實現會帶來一些怪癖。
第二個選項是使用符號連結。這個概念需要將符號連結放入系統PATH
中,然後將其目標更新到您要使用的節點安裝目錄。這是一種簡單的方法,似乎也是人們所推薦的......直到他們意識到符號連結在 Windows 上有多痛苦。這就是為什麼以前沒有發生過這種情況。
為了建立/修改符號鏈接,您必須以管理員身份運行,並且必須繞過 Windows UAC(那個煩人的提示)。幸運的是,我已經透過節點視窗中的一些幫助程式腳本解決了這個挑戰。因此,NVM for Windows 維護一個僅在安裝期間放入系統PATH
中的符號連結。切換到不同版本的節點就是切換符號連結目標。因此,此實用程式不需要您每次開啟控制台視窗時都執行nvm use xxx
。當您執行nvm use xxx
時,節點的活動版本會在所有開啟的控制台視窗中自動更新。它也會在系統重新啟動之間持續存在,因此您只需在想要進行變更時使用 nvm。
NVM for Windows 附帶了一個安裝程序,這是我在 Fenix Web Server 上工作的副產品。
總的來說,這個計畫匯集了一些想法、其他模組的一些久經考驗的部分,以及對新版本節點的支持。
NVM for Windows 使用 Node 項目提供的清單來識別「最新」版本。版本 1.1.1+ 使用此清單。在此列表存在之前,我正在抓取版本並將其作為獨立的資料來源提供。此清單曾在版本 1.1.0 及先前版本中使用,但現已棄用。
我需要它,簡單明了。此外,很明顯,節點核心不會支援多個版本。這也是玩圍棋的一個藉口。
我選擇 Go 是因為它是跨平台的,感覺比 Java 開銷更少,而且它的存在時間比大多數人想像的要長。另外,我想嘗試一下。有人問我為什麼不用 Node 來寫它。嘗試使用您嘗試安裝的工具編寫工具對我來說沒有意義。因此,我的專案要求很簡單…不是 Node.js 的東西。 Node 將繼續發展和變化。如果您需要提醒這一點,請記住 io.js、Ayo、4.xx 和 6.xx 之間的所有重大更改,以及 12+ 中向 ES 模組的轉變。在軟體世界中,變化是不可避免的。 JavaScript 非常動態。
感謝所有在 Github 上和非 Github 上提交問題、提出建議並總體上幫助使這個專案變得更好的人。特別感謝
@vkbansal,他在整個早期版本中提供了重要的早期回饋。
@rainabba 和 @sullivanpt 用於整合 Node v4 支援。
@shadow 解決了路徑名中長期存在的空格轉義問題 (#355)。
ajyong 在 2021 年底贊助了代碼簽署證書。