Node.jsAL2023 中的
AL2023 中的 Node.js
这是利用 alternatives 工具的功能实现的。重要的是要记住,默认的可执行文件名是虚拟的,并且在指向不同安装的 Node.js 版本时可以随时更改。这种灵活性使得使用 node 在 shebang 中的软件可以在被调用时选择所需的版本。然而,当需要特定版本的 Node.js 时,可以通过调用命名空间化的可执行文件(例如 node-20 或 node-22)来实现版本的持久性,这将始终使用指定的运行时版本。此外,npm 工具的命名空间可执行文件,如 npm-20 或 npm-22,总是与相应的 Node.js 版本相关联,无论当前活动的运行时是什么。
Node.js 作为多个命名空间程序包分发。这些程序包提供 node、一个与之兼容的 npm 工具版本、文档、库等。唯一的例外是 Node.js 18,它在历史上没有命名空间,并在 nodejs 和 nodejs-npm 程序包中分别提供 node 和 npm。然而,Node.js 的后续版本是命名空间的,并以“nodejs{MAJOR_VERSION}”开头。例如,Node.js 20 的 node 和 npm 分别由 nodejs20 和 nodejs20-npm 程序包提供。
alternatives 工具提供了一个用于在 Node.js 版本之间切换的单一命令。默认情况下,alternatives 被配置为处于自动模式,该模式使用优先级来确定当前活动的 Node.js 版本。然而,您可以随时激活任何已安装的版本。目前,所有受支持的 Node.js 版本具有相等的优先级,这意味着第一个安装的版本将自动激活。
使用 alternatives 的一些有用示例
-
检查 alternatives 的配置内容
alternatives --list -
检查 node 的当前配置
alternatives --display node -
交互式更改 Node.js 版本
alternatives --config node -
切换到手动模式并选择特定版本
alternatives --set node /usr/bin/node-{MAJOR_VERSION} -
切换回自动版本选择模式
alternatives --auto node