使用 `fnm` 管理 Node.js 版本

发布 | 2024-08-25 | Tools

通用步骤

  • 项目级 Node.js 版本控制:
    在项目根目录创建 .nvmrc 文件或 .node-version 文件,指定项目所需的 Node.js 版本。

Windows 系统

配置 PowerShell 加载 fnm(可选):

PowerShell 配置文件路径由 $PROFILE 变量指定。可以在 PowerShell 中运行以下命令查看具体路径:

echo $PROFILE

常见路径如下:

  • Windows PowerShell:

    C:\Users\你的用户名\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
  • PowerShell Core (pwsh):

    C:\Users\你的用户名\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

打开配置文件,你可以在 PowerShell 中使用以下命令:

notepad $PROFILE

在文件中添加以下行来自动加载 fnm:

fnm env --use-on-cd | Out-String | Invoke-Expression

如果你不希望自动加载 fnm,找到这行代码并将其删除或注释掉(用 # 注释)。保存文件后,重新启动 PowerShell,fnm 将不再自动加载。

VSCode 终端验证:

在 VSCode 设置中,确保终端使用的是 PowerShell,并且 PowerShell 已配置好自动加载 fnm。在 VSCode 终端中运行以下命令验证:

node -v
npm -v

输出的版本号应与项目中 .nvmrc 文件指定的版本相符。

项目级 Node.js 版本控制:

在项目根目录创建 .nvmrc 文件,指定 Node.js 版本号,例如:

20

进入项目目录时,fnm 会自动切换到指定版本,或者手动运行 fnm use 切换版本。

系统的 PowerShell 执行策略不允许运行脚本解决方法

查看当前的执行策略

首先,查看当前的执行策略,以了解是否需要更改。

Get-ExecutionPolicy -List

这会显示在系统范围内和用户范围内的执行策略。

修改执行策略

如果执行策略限制了脚本运行,可以将其修改为允许运行脚本。推荐的策略是 RemoteSigned,它允许本地脚本运行,但对从互联网下载的脚本进行签名检查。

全局修改执行策略(需要管理员权限):

Set-ExecutionPolicy RemoteSigned -Scope LocalMachine

仅为当前用户修改执行策略

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

确认执行策略已更改

运行以下命令,确认执行策略已成功更改:

Get-ExecutionPolicy -List

确保 LocalMachineCurrentUser 的策略设置为 RemoteSigned

重新加载 PowerShell 配置文件

执行以下命令来重新加载 PowerShell 配置文件:

. $PROFILE

macOS 系统

配置终端加载 fnm(可选):

根据你使用的终端类型,配置文件路径如下:

  • Bash:
    配置文件路径通常是:

    /Users/你的用户名/.bashrc

    可以通过以下命令打开:

    nano ~/.bashrc
  • Zsh:
    配置文件路径通常是:

    /Users/你的用户名/.zshrc

    可以通过以下命令打开:

    nano ~/.zshrc
  • Fish:
    配置文件路径通常是:

    /Users/你的用户名/.config/fish/config.fish

    可以通过以下命令打开:

    nano ~/.config/fish/config.fish

在相应的配置文件中添加以下行来自动加载 fnm:

  • Bash/Zsh:

    eval "$(fnm env --use-on-cd)"
  • Fish:

    fnm env --use-on-cd | source

如果你不希望自动加载 fnm,找到这行代码并将其删除或注释掉(用 # 注释或删除行)。保存文件后,重新启动终端,fnm 将不再自动加载。

VSCode 终端验证:

在 VSCode 设置中,确保终端使用的是已配置的 Shell(Bash、Zsh 或 Fish)。在 VSCode 终端中运行以下命令验证:

node -v
npm -v

输出的版本号应与项目中 .nvmrc 文件指定的版本相符。

项目级 Node.js 版本控制:

在项目根目录创建 .nvmrc 文件,写入所需的 Node.js 版本号,例如:

20

fnm 会自动切换到该版本,或手动运行 fnm use 切换版本。

Linux 系统

配置终端加载 fnm(可选):

根据你使用的终端类型,配置文件路径如下:

  • Bash:
    配置文件路径通常是:

    /home/你的用户名/.bashrc

    可以通过以下命令打开:

    nano ~/.bashrc
  • Zsh:
    配置文件路径通常是:

    /home/你的用户名/.zshrc

    可以通过以下命令打开:

    nano ~/.zshrc
  • Fish:
    配置文件路径通常是:

    /home/你的用户名/.config/fish/config.fish

    可以通过以下命令打开:

    nano ~/.config/fish/config.fish

在相应的配置文件中添加以下行来自动加载 fnm:

  • Bash/Zsh:

    eval "$(fnm env --use-on-cd)"
  • Fish:

    fnm env --use-on-cd | source

如果你不希望自动加载 fnm,找到这行代码并将其删除或注释掉(用 # 注释或删除行)。保存文件后,重新启动终端,fnm 将不再自动加载。

VSCode 终端验证:

在 VSCode 设置中,确保终端使用的是已配置的 Shell(Bash、Zsh 或 Fish)。在 VSCode 终端中运行以下命令验证:

node -v
npm -v

输出的版本号应与项目中 .nvmrc 文件指定的版本相符。

项目级 Node.js 版本控制:

在项目根目录创建 .nvmrc 文件,写入所需的 Node.js 版本号,例如:

20

手动运行 fnm use 切换到指定版本,或让 fnm 自动切换。

配置加载的必要性

配置加载是可选的。它能够自动化管理 Node.js 版本,减少手动操作,特别是在多个项目之间频繁切换时。如果你希望完全手动管理和切换版本,可以不配置加载,直接在需要时使用 fnm use 命令。

标签
fnm,Node.js,NPM

© 著作权归作者所有

本文由 趣代码Blog 创作,采用 知识共享署名4.0 国际许可协议进行许可,本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。

评论关闭