跨项目频繁切换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发现配置成功。

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

相关推荐
沐土Arvin几秒前
深入理解 requestIdleCallback:浏览器空闲时段的性能优化利器
开发语言·前端·javascript·设计模式·html
专注VB编程开发20年2 分钟前
VB.NET关于接口实现与简化设计的分析,封装其他类
java·前端·数据库
小妖66612 分钟前
css 中 content: “\e6d0“ 怎么变成图标的?
前端·css
L耀早睡1 小时前
mapreduce打包运行
大数据·前端·spark·mapreduce
HouGISer1 小时前
副业小程序YUERGS,从开发到变现
前端·小程序
outstanding木槿1 小时前
react中安装依赖时的问题 【集合】
前端·javascript·react.js·node.js
霸王蟹2 小时前
React中useState中更新是同步的还是异步的?
前端·javascript·笔记·学习·react.js·前端框架
霸王蟹2 小时前
React Hooks 必须在组件最顶层调用的原因解析
前端·javascript·笔记·学习·react.js
专注VB编程开发20年2 小时前
asp.net IHttpHandler 对分块传输编码的支持,IIs web服务器后端技术
服务器·前端·asp.net
爱分享的程序员3 小时前
全栈项目搭建指南:Nuxt.js + Node.js + MongoDB
前端