windows系统使用nvm配置自动切换node版本

当前端在开发久了之后,我们可能会有很多个项目存在,然而由于node版本的兼容性问题,我们不同的项目使用的node.js版本完全不同。

这个时候我们想到用nvm来做版本管理,但是发现每次都需要使用nvm use "node.js --version"来手动切换,有没有方法可以让nvm对于不同项目指定不同版本,并且自动切换。

我研究了一下午,找到了配置的方法,通过我们windows的powerShell,用其内置命令去配置执行策略,执行我们自定义的函数方法,让它自动实现切换版本

js 复制代码
// 首先,我们对于不同的项目,可以在powerShell中cd "项目路径",在项目的根路径中执行下面的命令
    echo "此项目指定的node版本" > .nvmrc
// 它会在我们的项目根目录下生成一个.nvmrc文件,其中存放了我们指定的node.js版本
js 复制代码
// 第二步:在powerShell中执行以下命令
    $PROFILE
// 为了防止不同用户电脑自定义配置不同而出现错误,执行这个命令找到windows读取配置的真实路径
// 输出结果类似   'D:\BaseInfoMove\文档\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'

// 第三步:有点同学可能像我一样,因为自己改动的电脑配置导致读取位置不在默认C盘,因此需要创建目标目录文件
New-Item -Path "D:\BaseInfoMove\文档\WindowsPowerShell" -ItemType Directory -Force
// 执行这行脚本来创建目标文件,      注意:自己第二步输出的路径,不要硬抄,要用自己的(最后的文件名不要)

// 第四步:一次性创建并写入脚本,执行以下命令,一次性复制,如果有提示,直接确定即可

@"
# Auto-load .nvmrc on directory change
function Enter-Directory {
    `$currentDir = Get-Location
    `$nvmrcPath = "`$currentDir\.nvmrc"
    
    if (Test-Path `$nvmrcPath) {
        `$version = Get-Content `$nvmrcPath -First 1 | Where-Object { `$_ -match '^\d' }
        if (`$version) {
            Write-Host "🔄 Switching to Node.js `$version..." -ForegroundColor Cyan
            nvm use `$version --silent
        }
    }
}

`$lastDir = ""
Register-EngineEvent -SourceIdentifier PowerShell.OnIdle -Action {
    if (`$lastDir -ne (Get-Location).Path) {
        `$lastDir = (Get-Location).Path
        Enter-Directory
    }
} | Out-Null

# Run on startup
Enter-Directory
"@ | Set-Content -Path "$PROFILE" -Encoding UTF8

// 这段脚本会自动创建在第三步创建目标目录时省略的文件,并写入执行脚本


// 最后一步:设置执行策略
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
// 这一步是在更改我们windows的powerShell的执行策略,让它打开的时候自动执行我们的脚本,以监听目录变动,自动查询读取项目中的.nvmrc配置文件,切换指定node.js(有的话,没有指定不会切换,不会报错,勿忧)

以上步骤执行完之后,重启powerShell即可,cd进入项目目录,会有自定义提示

php 复制代码
🔄 Switching to Node.js `$version...
// 这是我们的脚本自定义提示,切换node版本提示,不必执行任何操作
// 提示出现后回车执行nvm current即可查看当前node版本,此时node版本应该已经切换成功了
相关推荐
猫头虎36 分钟前
OpenClaw开源汉化发行版:介绍、下载、安装、配置教程
运维·windows·开源·aigc·ai编程·agi·csdn
luffy545940 分钟前
windows下通过docker-desktop创建redis实例
windows·redis·docker·容器
程序员敲代码吗1 小时前
Windows组策略限制规避指南:深入解析与实际操作
windows
黄大帅@lz2 小时前
openai提示词学习
windows·学习
MyY_DO2 小时前
十四课 易语言核心逆向
windows·od
AI袋鼠帝13 小时前
Claude4.5+Gemini3 接管电脑桌面,这回是真无敌了..
人工智能·windows·aigc
獨枭13 小时前
Windows 下安装与使用 Miniconda 完整指南
windows
命里有定数15 小时前
保姆级教程:在 Windows (WSL2) 下本地部署 Qwen3-ASR
windows
lucky670718 小时前
Windows 上彻底卸载 Node.js
windows·node.js
编程小白202618 小时前
从 C++ 基础到效率翻倍:Qt 开发环境搭建与Windows 神级快捷键指南
开发语言·c++·windows·qt·学习