用了 PVM 才知道,环境隔离真不用跑 doctor,AI 都轻松了

📅 2026/7/24 3:05:31
用了 PVM 才知道,环境隔离真不用跑 doctor,AI 都轻松了
用了 PVM 才知道环境隔离真不用跑 doctorAI 都轻松了两个问题问题一同时维护多个项目版本互相污染。一个 Node 18 的老项目一个 Node 20 的新项目一个 Python Node 的混合项目。每天在三者之间横跳脑子记不住版本。忘了的结果用 Node 20 给 Node 18 的项目跑了npm installlockfile 被高版本 npm 静默重写。CI 照着被篡改的 lockfile 装依赖 → CI 红了 → 你懵了。更阴的是构建脚本——build 用了 Node 20 才有的crypto.hash()你全局是 18npm 不拦脚本走了降级分支构建全程 0 报错上线后样式悄悄裂了。问题二AI Skill 跑不起来环境反复试错。AI 给你写了个 Python 脚本转 PDF结果command not found: python。然后它开始哐哐装环境装完版本不对再换顺手把你刚配好的东西动了。明明一分钟的事环境拖成半小时。根源都一样版本信息没跟项目走。解决一项目环境隔离把版本锁在项目里而不是锁在脑子里。项目根目录放一个.pvmrcnode 20.11.0 python 3.12.0提交到仓库。任何人 clone 完 cd 进来版本自动生效。切到隔壁项目自动切。怎么做到的核心机制是Shim 硬链接拦截对比一目了然工具切换方式管多少种Windows 原生nvm手动nvm use忘了就翻车1❌fnmcd 自动切但只管 Node1❌asdfcd 自动切但 shim 是 bash 脚本多❌Voltacd 自动切架构焊死在 Node 上3❌PVMcd 自动切硬链接 shim9✅解决二AI Skill 一键就位AI Skill 最大的痛点不是脚本写不对是运行环境不在。你从社区下载一个 Skill信心满满点执行 →python: command not found。然后 AI 开始装环境、试版本、修 PATH整个过程重复试错原本一分钟的事拖成半小时。PVM 的解法skil 作者在项目里放一个.pvmrcpython 3.12.0 node 20.11.0你用的时候不需要先装一圈环境。cd 进来那一秒shim 已经把 python 指向了 3.12.0把 node 指向了 20.11.0。AI 直接跑脚本不用装不用试不用修。这就是 PVM 对 AI 最大的价值——它不需要知道环境是什么版本进目录就已经对了。技术架构整个 PVM 的核心是插件架构 单二进制自分发RuntimePlugin 接口加新语言不动核心代码靠的就是这个接口typeRuntimePlugininterface{Name()stringNames()[]string// 别名node, nodejsShims()[]string// 需要创建哪些 shimBasePath(versionstring)string// 安装目录Install(ctx,versionstring)error// 下载 解压 校验ListInstalled()([]string,error)// 已安装版本Validate(versionstring)error// 安装后自检GetDownloadURL(ctx,versionstring)(string,error)// 下载地址}Node 实现了Python 实现了Rust 也实现了。想加 Zig照着抄一份RegisterAll()注册进去核心代码一行不动。自分发流程当 Shell 调用node时实际执行路径1. Shell 在 PATH 中找到 ~/.pvm/shims/node 2. node 是 pvm.exe 的硬链接启动 pvm 主程序 3. os.Executable() 发现当前进程名为 node 4. 路径在 shims/ 下 → 判定为 shim 调用 5. 读 .pvmrc → 解析版本 → 转发给真实二进制 6. 真实二进制执行返回结果全套逻辑在cmd/root.go200 行不到。国内镜像自动切换遇到 GitHub API 403 或下载慢自动切镜像不用配任何环境变量运行时镜像源node / python / bun / deno / pnpm / yarn / gitnpmmirror.comgogolang.google.cnrustrsproxy.cn⚠️ 注意事项杀毒软件误报PVM 的 shim 是 pvm.exe 的硬链接。杀软看到同一个二进制在 shims 目录下出现十几次容易误判为病毒。这是误报请放心使用安装时如被拦截点击「更多信息」→「仍要运行」或在 Windows Defender 中临时添加~/.pvm目录到排除项后续计划购买代码签名证书$300-500/年从根源解决误报如果你遇到了也欢迎提交文件给微软分析多一个人提交就快一步洗白。上手# 下载安装包双击安装setup 自动运行# 进项目一行锁死所有运行时cdyour-project pvm use node20 python3.12 bun1.1# 提交gitadd.pvmrcgitcommit-mlock runtimes完。不需要装一堆工具不需要配一堆环境变量不需要在 README 里写请确保你装了以下…。装一个 PVM就够了。喜欢就点击start仓库 github.com/Lycorxy/pvmMIT 协议v0.0.1。如果这篇文章帮到了你欢迎转发给还在手动切版本的同事。遇到 bug 或者有需求直接提 issue。v0.0.1 还在打磨你的每一个反馈都在帮它变得更好希望大家多多使用反馈让pvm越来越好能真正的帮到你。