使用fnm根据项目自动切换Node版本
页面施工中~
在日常的前端或 Node.js 项目开发中,我们经常会遇到需要在不同的 Node.js 版本之间切换的场景。手动管理这些版本既繁琐又容易出错。fnm (Fast Node Manager) 以其出色的性能和强大的功能,完美地解决了这个问题。
本文的核心,是讲解如何配置 fnm,使其能够像 Anaconda 管理 Python 环境一样,在你进入不同项目目录时,自动为你切换到该项目指定的 Node.js 版本。
前提:本文假设您已经成功安装了
fnm。如果您尚未安装,可以参考本站的《nvm迁移到fnm》一文。
核心:配置 Shell 以启用自动切换
要让 fnm 发挥最大的效用,关键一步是在你的 Shell 配置文件中,加入初始化命令并启用 use-on-cd 功能。这样,每次你打开终端或切换目录时,fnm 就能自动工作。
针对 Windows (PowerShell) 用户的详细指南
对于 Windows 用户,PowerShell 的执行策略可能会让配置过程稍显复杂。以下是详尽的步骤。
第 1 步:确保并打开你的 PowerShell 配置文件
PowerShell 的配置过程可以非常简洁。
- 打开一个 PowerShell 终端。
- 执行以下命令。它会自动检查配置文件是否存在,如果不存在,则会创建它:
1
if (-not (Test-Path $profile)) { New-Item $profile -Force } - 然后,使用下面这条命令可以直接用默认程序(通常是记事本或 VS Code)打开这个配置文件,非常方便:
1
Invoke-Item $profile
第 2 步:添加 fnm 初始化命令
将下面这行命令完整地复制并粘贴到你刚刚打开的 Microsoft.PowerShell_profile.ps1 文件中。
1 | |
随后保存并关闭文件。
第 3 步:激活配置并处理执行策略
- 重启 PowerShell 终端,这是最简单的激活方式。
- 问题排查:如果在重启后或执行
. $PROFILE时,看到红色错误提示...无法加载文件...因为在此系统上禁止运行脚本,则需要调整 PowerShell 的执行策略。 - 解决方案:以 管理员身份 打开一个新的 PowerShell 终端,执行以下命令,然后按
Y确认。此命令仅为当前用户授权运行本地脚本,是相对安全的推荐设置。设置完成后,关闭管理员终端,回到普通终端,问题即可解决。1
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
实战演练:体验自动切换
配置完成后,让我们来检验一下成果。
安装两个不同版本的 Node.js,并设置一个全局默认版本。
1
2
3
4fnm install 20
fnm install 18
fnm default 20 # 将 v20 设置为默认版本
node -v # 此时应该显示 v20.x.x进入项目根目录。
在根目录中创建指定版本文件。
在项目根目录创建一个名为.node-version的文件,文件内容写入你希望使用的版本号
例如:
保存文件后,fnm会立刻检测到并自动切换到 v18 版本。你也可以使用.nvmrc文件,效果完全相同。验证。
现在保存进入项目,就会自动切换node版本了
离开项目目录,
fnm会自动切回默认版本。1
2cd ..
node -v # 应该再次显示 v20.x.x
如果以上步骤都符合预期,那么恭喜你,你已经掌握了 fnm 最强大的工作流!
总结
fnm 以其出色的性能和强大的自动切换功能,成为了现代 Node.js 开发中一个不可或缺的工具。通过简单的配置,我们就可以实现“一项目一版本”的优雅工作流,极大地提升了开发效率和项目稳定性。如果你还在为管理多个 Node.js 版本而烦恼,不妨试试 fnm 吧!
