天天看點

Node.js的多版本管理工具之nvmnvm

(Node.js的多版本管理工具之nvm)

nvm

nvm是node.js版本管理的實用程式,通常有些項目必須依賴不同版的 NodeJS 運作環境,此時nvm應運而生,用于管理node的版本以及能很友善的進行node版本的切換。

非Windows系統:

https://github.com/nvm-sh/nvm

Windows系統:

https://github.com/coreybutler/nvm-windows

安裝nvm

注意:

在安裝 NVM for Windows 之前解除安裝任何現有版本的 Node.js,否則将有沖突

輕按兩下安裝程式,選擇nvm安裝目錄

Node.js的多版本管理工具之nvmnvm

這個我的了解就是node的真實運作目錄,通過切換不同版本,改變這個目錄的檔案,進而達到通路不同版本的node

Node.js的多版本管理工具之nvmnvm

安裝Node

在運作nvm installor時nvm use,Windows通常需要管理權限(以建立符号連結)。

執行mvn得到一些幫助指令

C:\Windows\system32>nvm

Running version 1.1.9.

Usage:

  nvm arch                     : Show if node is running in 32 or 64 bit mode.
  nvm current                  : Display active version.
  nvm install <version> [arch] : The version can be a specific version, "latest" for the latest current version, or "lts" for the
                                 most recent LTS version. Optionally specify whether to install the 32 or 64 bit version (defaults
                                 to system arch). Set [arch] to "all" to install 32 AND 64 bit versions.
                                 Add --insecure to the end of this command to bypass SSL validation of the remote download server.
  nvm list [available]         : List the node.js installations. Type "available" at the end to see what can be installed. Aliased as ls.
  nvm on                       : Enable node.js version management.
  nvm off                      : Disable node.js version management.
  nvm proxy [url]              : Set a proxy to use for downloads. Leave [url] blank to see the current proxy.
                                 Set [url] to "none" to remove the proxy.
  nvm node_mirror [url]        : Set the node mirror. Defaults to https://nodejs.org/dist/. Leave [url] blank to use default url.
  nvm npm_mirror [url]         : Set the npm mirror. Defaults to https://github.com/npm/cli/archive/. Leave [url] blank to default url.
  nvm uninstall <version>      : The version must be a specific version.
  nvm use [version] [arch]     : Switch to use the specified version. Optionally use "latest", "lts", or "newest".
                                 "newest" is the latest installed version. Optionally specify 32/64bit architecture.
                                 nvm use <arch> will continue using the selected version, but switch to 32/64 bit mode.
  nvm root [path]              : Set the directory where nvm should store different versions of node.js.
                                 If <path> is not set, the current root will be displayed.
  nvm version                  : Displays the current running version of nvm for Windows. Aliased as v.
           

大概翻譯如下

nvm arch [32|64]:顯示節點是在 32 位還是 64 位模式下運作。指定 32 或 64 以覆寫預設架構。
nvm current:顯示活動版本。
nvm install <version> [arch]:版本可以是特定版本,“latest”表示最新的目前版本,或“lts”表示最新的 LTS 版本。可選地指定是安裝 32 位還是 64 位版本(預設為系統架構)。将 [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]為“無”以删除代理。
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:顯示目前運作的 NVM for Windows 版本。
nvm node_mirror <node_mirror_url>:設定節點鏡像。國内的人可以使用https://npmmirror.com/mirrors/node/
nvm npm_mirror <npm_mirror_url>:設定npm鏡像。中國的人可以使用https://npmmirror.com/mirrors/npm/
           

安裝node:

nvm install Node具體版本号

C:\Windows\system32>nvm install 8
Downloading node.js version 8.17.0 (64-bit)...
Complete
Creating D:\Development\nvm\temp

Downloading npm version 6.13.4... Complete
Installing npm v6.13.4...
                                           
Installation complete. If you want to use this version, type
                                            
nvm use 8.17.0
           

安裝某個版本的node後需要開啟方可使用

C:\Windows\system32>nvm list

    8.17.0
C:\Windows\system32>nvm on
nvm enabled
Now using node v8.17.0 (64-bit)

C:\Windows\system32>nvm list

  * 8.17.0 (Currently using 64-bit executable)
           

node版本切換

安裝另一個版本的node,同時進行版本切換測試

C:\Windows\system32>nvm install 16
Downloading node.js version 16.17.0 (64-bit)...
Extracting...
Complete


Installation complete. If you want to use this version, type

nvm use 16.17.0

C:\Windows\system32>nvm list

    16.17.0
  * 8.17.0 (Currently using 64-bit executable)

C:\Windows\system32>nvm use 16.17.0
Now using node v16.17.0 (64-bit)

C:\Windows\system32>nvm list

  * 16.17.0 (Currently using 64-bit executable)
    8.17.0
           

配置

修改

settings.txt

檔案

Node.js的多版本管理工具之nvmnvm

添加如下最後2行指令,提升下載下傳速度。

root: D:\Development\nvm
path: D:\Development\nvm\nodejs

node_mirror: https://npm.taobao.org/mirrors/node/

npm_mirror: https://npm.taobao.org/mirrors/npm/
           

全局子產品

官方提示:

可能安裝的任何全局 npm 子產品都不會在您安裝的各個版本的 node.js 之間共享。

個人有一個解決辦法:

1.基于上述操作,在

D:\Development\nvm

目錄建立modules,并執行如下指令,修改安裝全局子產品的安裝目錄。實際上這個配置資訊存儲在

%UserProfile%\.npmrc

npm config set prefix "D:\Development\nvm\modules\node_global"

npm config set cache "D:\Development\nvm\modules\node_cache"
           
%NVM_HOME%\modules\node_global
           
npm install cnpm -g
           
C:\Windows\system32>node -v
v16.17.0

C:\Windows\system32>cnpm -v
[email protected] (D:\Development\nvm\modules\node_global\node_modules\cnpm\lib\parse_argv.js)
[email protected] (D:\Development\nvm\modules\node_global\node_modules\cnpm\node_modules\npm\index.js)
[email protected] (D:\Development\nvm\nodejs\node.exe)
[email protected] (D:\Development\nvm\modules\node_global\node_modules\cnpm\node_modules\npminstall\lib\index.js)
prefix=D:\Development\nvm\modules\node_global
win32 x64 10.0.22000
registry=https://registry.npmmirror.com

C:\Windows\system32>nvm use 8.17.0
Now using node v8.17.0 (64-bit)

C:\Windows\system32>node -v
v8.17.0

C:\Windows\system32>cnpm -v
[email protected] (D:\Development\nvm\modules\node_global\node_modules\cnpm\lib\parse_argv.js)
[email protected] (D:\Development\nvm\modules\node_global\node_modules\cnpm\node_modules\npm\index.js)
[email protected] (D:\Development\nvm\nodejs\node.exe)
[email protected] (D:\Development\nvm\modules\node_global\node_modules\cnpm\node_modules\npminstall\lib\index.js)
prefix=D:\Development\nvm\modules\node_global
win32 x64 10.0.22000
registry=https://registry.npmmirror.com
           

繼續閱讀