跨项目频繁切换node版本号(nvm-windows)

最近在手头有两个新老项目在同时处理,频繁切换node版本号很是繁琐,在这里记录一下解决的方法:(前提是系统已安装nvm)

下面部分是我的尝试思路,想要效果的话可以直接看第三点:

1. 使用项目特定的 .nvmrc 文件

use 18.17.0 手动切换node版本,而这个.nvmrc文件替代查询修改操作,配置有关操作:

.nvmrc 文件配置

再使用以下指令

bash 复制代码
nvm use # × 此指令windows会报错 需要替换成一下内容
nvm use $(Get-Content .nvmrc) 

nvm use 报错: A version argument is required but missing. nvm use语法不支持,查阅资料跟nvm版本与windows系统有关。

参考:blog.csdn.net/weixin_5257...

2. 系统配置指令

(原方案需切换 VS Code 终端为 Git Bash,实际测试后弃用,保留记录供参考)

官网地址:github.com/nvm-sh/nvm?... 官网提供脚本配置方案

利用git携带的Git Bash

bash 复制代码
notepad ~/.bashrc

首次打开可能会出现没有找到此文件是否创建,选择是。打开后将以下内容写入:

遇到问题:官网提供的指令会报错nvm_find_up:command not found,更换官网代码为以下内容:

bash 复制代码
# ~/.bashrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

auto_nvm_use() {
    if [[ -f ".nvmrc" && -r ".nvmrc" ]]; then
        local nvm_version=$(<.nvmrc)
        echo "检测到 .nvmrc,切换 Node 版本: $nvm_version"
        nvm use "$nvm_version" 2>/dev/null || {
            echo "版本未安装,正在安装 $nvm_version..."
            nvm install "$nvm_version"
            nvm use "$nvm_version"
        }
    fi
}

# 替换 cd 命令
cd() {
    builtin cd "$@" || return
    auto_nvm_use
}

# 初始化时检测当前目录
auto_nvm_use

Git Bash切换到指定目录

打开VS Code终端发现并未生效,由于VS Code 的集成终端默认以 非登录 Shell(non-login shell) 启动,后未修改

3. vscode配置指令(最终解决办法)

项目根目录 下创建.nvmrc文件,写入版本号, 打开 VS Code 设置文件

  • 按下 Ctrl + , 打开设置,找到 settings.json 文件。
  • 找到 terminal.integrated.profiles.windowsPowerShell 新增以下内容
json 复制代码
  "args": [
      "-NoExit",
      "-Command",
      "if (Test-Path .nvmrc) { nvm use (Get-Content .nvmrc) }"
   ]            

OK!重启VS Code发现配置成功。

这是我的第一篇小笔记,有什么问题的话欢迎指正~

相关推荐
斐济岛上有一只斐济几秒前
后端程序员的CSS复习
前端
Enddme3 分钟前
《面试必问!JavaScript 中this 全方位避坑指南 (含高频题解析)》
前端·javascript·面试
有梦想的程序员5 分钟前
微信小程序使用 Tailwind CSS version 3
前端
溟洵28 分钟前
Qt 窗口 工具栏QToolBar、状态栏StatusBar
开发语言·前端·数据库·c++·后端·qt
用户25191624271132 分钟前
Canvas之图像合成
前端·javascript·canvas
每天开心33 分钟前
噜噜旅游App(4)——构建旅游智能客服模块,实现AI聊天
前端·微信小程序·前端框架
超凌34 分钟前
el-input-number出现的点击+-按钮频现不生效
前端
三小河34 分钟前
contentEditable 实现可编辑区域
前端
一道雷42 分钟前
🧩 Vue Router嵌套路由新范式:无需嵌套 RouterView 的布局实践
前端·vue.js
Mintopia1 小时前
🎯 光与面的命运交锋:Möller-Trumbore 线段三角形相交算法全解析
前端·javascript·计算机图形学