

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AL2023 中的 Node.js
<a name="nodejs"></a>

 [https://nodejs.org/](https://nodejs.org/) AL2023 中的 是以版本 20、22 和 24 表示。Amazon Linux 遵循上游[支援排程](https://github.com/nodejs/Release)，而且任何 Node.js 版本的支援狀態都可以在[套件支援狀態頁面上](https://docs.aws.amazon.com/linux/al2023/release-notes/support-info-by-package.html)檢查。所有支援的Node.js版本都是命名空間，並且可以同時安裝在相同的系統上。Namespacing 可確保每個Node.js安裝在檔案系統中都是唯一的。這可透過根據執行時間版本重新命名金鑰目錄和檔案來實現。實際可執行檔名稱看起來會像 *node-\$1MAJOR\$1VERSION\$1* 或 *npm-\$1MAJOR\$1VERSION\$1*。不過，一次只能有一個Node.js版本處於作用中狀態。此作用中版本提供預設目錄和檔案名稱，例如*節點*、*npm* 或 */usr/lib/node\$1modules*，將它們指向目前作用中的執行時間。

 這是使用*替代*工具的功能來實現的。請務必記住，預設可執行檔名稱是虛擬的，當指向不同的已安裝Node.js版本時， 可能會隨時變更。此彈性可讓軟體使用 shebang 中的*節點*，在調用時選取所需的版本。不過，當需要特定版本的 Node.js 時，可以透過呼叫命名空間可執行檔 （例如 *node-20* 或 *node-22*) 來實現該版本的持久性，該執行期一律使用指定的版本。此外，*npm* 工具的命名空間可執行檔，例如 npm-20 或 npm-22，一律與對應的 Node.js 版本相關聯，無論目前作用中的執行時間為何。

 Node.js 以數個以 "`nodejs{MAJOR_VERSION}`" 開頭的命名空間套件來分佈。這些套件提供*節點*、相容版本的 *npm* 工具、文件、程式庫等。例如， 和 `nodejs22-npm`套件分別提供 Node.js 22 的*節點*`nodejs22`和 *npm*。

 *替代*工具提供單一命令以在Node.js版本之間切換。根據預設，*替代方案*會設定為處於自動模式，這會使用優先順序來判斷目前作用中的Node.js版本。不過，您可以隨時啟用任何已安裝的版本。目前，所有支援的 版本Node.js具有相同的優先順序，這表示將自動啟用第一個安裝的版本。

**使用*替代方案*的一些實用範例**

1. 檢查針對 設定哪些*替代方案* 

   ```
   alternatives --list
   ```

1. 檢查*節點*目前的組態

   ```
   alternatives --display node
   ```

1. 以互動方式變更Node.js版本

   ```
   alternatives --config node
   ```

1. 切換到手動模式並選取特定版本

   ```
   alternatives --set node /usr/bin/node-{MAJOR_VERSION}
   ```

1. 切換回自動版本選擇模式

   ```
   alternatives --auto node
   ```