JavaScript >> Javascript 文檔 >  >> Node.js

如何使用 NVM 安裝 Node.js 和管理版本

如何在您的計算機上安裝 Node.js 和 NPM,以及如何使用 NVM(Node Version Manager)管理不同的版本。

在開始使用 Node.js 之前,您需要在計算機上安裝 Node.js 運行時和 NPM(節點包管理器)。默認情況下,一次只能使用一個版本的 Node.js。如果您使用的代碼範圍很廣(例如,各種工作項目、閱讀教程或完成課程),當 Node.js 版本不匹配時,這可能會導致問題。

要解決此問題,最好安裝 NVM(Node Version Manager)命令行工具,以幫助您在計算機上快速輕鬆地在 Node.js 版本之間切換。

首先,我們將看看以傳統方式安裝 Node.js(以及可用版本之間的差異),然後我們將了解 NVM 如何幫助我們管理不同版本的 Node.js。

安裝 Node.js LTS 與當前版本

安裝 Node.js 的最簡單方法是前往 Node.js 網站並下載適用於您的操作系統的安裝程序。在該頁面上,您將看到兩個選項:

  1. X.X.X LTS - 運行時的當前“長期支持”版本。這被認為是當前“穩定”版本的運行時,非常適合需要最大兼容性和穩定性的項目。
  2. X.X.X Current - 最新版本的運行時。這是運行時的最新版本,非常適合希望利用最新 Node.js 功能的項目,或者不介意解決未修補問題的開發人員。

雖然“LTS”版本被表示為“推薦給大多數用戶”,但使用當前版本有助於減少閱讀教程、完成課程和使用基於 Node.js 的第三方工具時的困惑。

推薦 :如果這是您第一次使用 Node.js,請安裝“LTS”版本,直到您對運行時感到滿意,然後安裝當前版本以訪問當前的完整功能集。

使用 NVM 管理 Node.js 的版本

隨著您使用 Node.js 的進展,您會發現不同的包(如 NPM 上的那些)、不同的教程和不同的課程將使用不同版本的 Node.js。

如果您只按照上述說明在您的計算機上安裝單個版本的 Node.js,這意味著如果編寫的某些代碼僅適用於較舊或較新版本的 Node.js:您將遇到問題。

雖然目前無法自動 在 Node.js 版本之間切換,NVM(節點版本管理器)等工具可以提供幫助。 NVM 是一個非官方的命令行工具,可幫助您在計算機上輕鬆切換 Node.js 版本。

例如,安裝了 NVM,如果我們當前使用的是 Node.js v15.13.0 但我們正在使用的代碼需要 v8.0.0 , 使用 NVM 我們可以運行:

nvm install 8

然後自動下載、安裝 Node.js 版本 8,並將其設置為我們計算機上的活動 Node.js 版本。

安裝 NVM(節點版本管理器)

要安裝 NVM,請前往 Github 上的項目倉庫。正如那裡的說明所解釋的,要安裝 NVM,我們需要使用命令行程序 curl 將 NVM 下載到我們的計算機上。

為此,在 Mac 上打開終端或在 Windows 上打開命令行並運行以下命令:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

注意 :注意/v0.38.0 部分在這裡。這是撰寫本文時的當前版本,自上次更新這篇文章以來可能已經發生了變化。

運行此程序後,該 URL 處的腳本將下載 NVM 所需的依賴項並將其安裝在您的計算機上。完成後,您將看到關閉並重新打開終端以開始使用 NVM 的消息。

首先,關閉您的終端(關閉整個應用程序以確保安全,因為我們需要強制終端重新加載)。接下來,在重新啟動之前,請在計算機上找到終端的配置文件。

對於 MacOS 用戶,它位於用戶目錄中計算機的根目錄中(例如,~/rglover )。要找到它,請打開一個 Finder 窗口,然後在左側導航中單擊您的用戶名。在該文件夾中,查找名為 .bash_profile 的文件 , .zshrc , .profile , 或 .bashrc (這將根據您的計算機設置而有所不同,但 .bash_profile 是最常見的)並在文本編輯器(例如 Visual Studio Code)中打開該文件。

注意 :對於 MacOS 用戶,如果您在查找文件時遇到問題,您可能需要在 Finder 中打開隱藏文件。為此,請打開您的終端備份並運行:

defaults write com.apple.finder AppleShowAllFiles YES
killall Finder

這將強制隱藏文件顯示在 Finder 中,然後使用 killall Finder 重新啟動 Finder .完成後,繼續並再次關閉您的終端(完全關閉應用程序)。

找到文件後,滾動到底部並放置以 export 開頭的腳本 NVM 文檔中的關鍵字並將其粘貼到文件底部:

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

正如最後的評論所暗示的,這段代碼負責在啟動時將 NVM 加載到您的終端中。請記住,為方便起見,NVM 安裝程序 嘗試為您添加此代碼,以便 它可能已添加到文件中 .

注意 :對於 Windows 用戶,這可能會根據您使用的 shell 環境而有所不同。

完成後,您應該可以開始使用 NVM 了。

使用 NVM 管理 Node.js 版本

安裝 NVM 後,打開終端備份,然後運行 nvm .您應該會看到打印到終端中的 NVM 手冊。從這裡,您可以使用列出的命令開始安裝和管理不同版本的 Node.js。

~ $ nvm

Node Version Manager

Note: <version> refers to any version-like string nvm understands. This includes:
  - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)
  - default (built-in) aliases: node, stable, unstable, iojs, system
  - custom aliases you define with `nvm alias foo`

 Any options that produce colorized output should respect the `--no-colors` option.

Usage:

[...]

需要了解的重要命令是:

nvm install X.X.X

此命令可幫助您安裝特定版本的 Node.js。您可以為任何現有的 Node.js 版本輸入完整的 3 位語義版本,或者如果您不確定或不在乎,您可以輸入 nvm install X X 是一個專業 version 以安裝該主要版本的最新補丁版本(例如,如果我們運行 nvm instal 15 ,在撰寫本文時,我們將獲得 v15.13.0 已安裝)。

nvm use X.X.X

此命令可幫助您在已安裝的 Node.js 版本之間切換。例如,如果我們之前運行 nvm install 15 安裝最新的 Node.js 主要版本,但現在我們需要切換到 Node.js 版本 8.15.1 對於較舊的項目,我們可以運行 nvm use 8 NVM 會自動將我們終端中的 Node.js 版本切換到 Node.js 8 的最新補丁版本。

nvm uninstall X.X.X

此命令可幫助您使用 NVM 刪除以前安裝的 Node.js 版本。雖然您在技術上不需要這樣做,但刪除未使用或很少使用的 Node.js 版本可以幫助釋放您計算機上的空間。

使用 NVM 時 NPM 包的行為方式

使用 NVM 的一個問題是,當您在版本之間切換時,您可能會遇到某些依賴項的問題。例如,如果我們安裝了 webpack 我們計算機上的 NPM 包,該包的版本可能取決於與我們當前使用的不同的 Node.js 版本。

這意味著當我們運行 webpack 命令(作為該包的一部分包含),我們可能會得到一個模棱兩可的錯誤,即某些預期存在的功能不存在:

~ $ nvm use 4
Now using node v4.6.2 (npm v2.15.11)
~ $ webpack
/Users/rglover/.nvm/versions/node/v4.6.2/lib/node_modules/webpack/bin/webpack.js:85
	let packageManager;
	^^^

SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:373:25)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:139:18)
    at node.js:990:3

此處顯示的錯誤可能沒有上下文意義,但問題是 webpack 的版本 安裝在我們的全局 NPM 包中需要比 NVM 目前使用的更高版本的 Node.js(此處為 v4.6.2 )。

如果在嘗試運行您自己的項目時發生這種情況,最好先切換到可用的最新版本的 Node.js(如果尚未安裝,則先安裝它),然後再次嘗試運行該命令。

如果那個 不起作用,最好進一步研究有問題的包,看看它的文檔是否指定了它工作所需的任何 Node.js 版本。

總結

將 NVM 與 Node.js 一起使用是改進開發工作流程和簡化 Node.js 日常工作的好方法。它最適合在一系列 Node.js 項目中工作的開發人員使用,或者仍在學習和在互聯網上不同教程和課程之間移動的開發人員。


Tutorial JavaScript 教程
  1. 合併兩個數組,存儲唯一元素,並在 jQuery 中排序

  2. 使用 React + Web3 構建 Aavegotchi DApp

  3. VS Code 定義一個#region

  4. 如何過濾 QuerySelectorAll 返回的元素

  5. 在 Reactjs 中使用 React-Icons

  6. 純數組修改:純 JavaScript 與現代 JavaScript

  7. StarHub - 一個 chrome 擴展程序,可以跟踪你的 GitHub 星星,所以你不必這樣做。

  1. 通過示例檢測 JavaScript 中的對象與數組

  2. 如何在 JavaScript 中實現“包含”搜索

  3. 使用 enter 提交表單時觸發按鈕上的單擊事件

  4. 在 React Native Expo 版本 36 SDK 中使用下拉選擇器

  5. 創建一個機器人,在您的 GitHub 個人資料上顯示您最新的 dev.to 帖子

  6. 棱鏡 101

  7. jQuery獲取容器的html,包括容器本身

  1. Websocket 在 React.Js 生產版本中不起作用

  2. Mongooses `save()` 函數簡介

  3. 使用 GraalVM 啟動多語言。為什麼?因為好玩🏄

  4. 如何使用 i18next 為瀏覽器應用程序添加簡單的國際化