使用Volta 解决多项目node版本不同的痛处

背景

最近嘛,终于忍受不了咯。由于项目众多,且历史背景厚重,所以存在了node的版本也众多,有:node8 node10 node14 node18及以上等等,

大家来回切换开发项目的时候也是不胜其烦,所以经调研有个工具还是很好用的,就是volta,可以每个项目单独维护node和npm版本,不用在关系node的版本切换,大家就可以专心搞业务了,是不是很开心,是不是很happy。那一起来操练起来,使用起来吧。此文本是基于 macOS来调试的哦,windows也类似就是安装不太一样。

安装 Volta

arduino 复制代码
curl https://get.volta.sh | bash

这个安装程序将自动更新控制台启动脚本

管理node

kotlin 复制代码
//在终端中输入
volta

volta install node@16//测试安装16的版本

volta install node // 安装最新版本

volta install node@14.15.5 // 切换版本 需要选择体具体的版本

node -v

查看已经安装过的node版本

arduino 复制代码
// 查看已经安装过的node版本
volta list node

固定node版本

kotlin 复制代码
// 在项目中这样会在package.json中增加 配置
volta pin node@16

"volta": {
    "node": "16.14.0",
}

卸载node

kotlin 复制代码
// 卸载某个版本的node
volta uninstall node@16

当然也可以安装npm 或者yarn 限制版本

kotlin 复制代码
// 固定其他的
volta pin npm@6.4.1
volta pin yarn@1.19

"volta": {
    "node": "16.14.0",
    "npm": "6.4.1",
    "yarn": "1.19.0"
}

然后在项目中使用就会在package.json 中增加一个配置

有了以上的配置后切换到不同的项目就会有不同的node使用了,不用再切换来切换去node 版本

arduino 复制代码
volta setup 为当前用户/shell 启用 volta
volta run 运行带有自定义Node、npm、pnpm和/或Yarn版本的命令
volta help 输出帮助信息

windows就借用下其他人写的咯,我自己没有去研究

对于 Windows,下载并运行 Windows 安装程序并按照说明操作。

彩蛋: 还可以管理其他的比如:vue-cli等等,这些自己去摸索吧...

问题

Pnpm 支持

对 pnpm 的支持目前是实验性的。要启用该功能,请确保环境变量 VoLTA_FEATURE_PNPM 设置为 1。在 Windows 上可以添加到环境变量中。在 Linux/Mac 上,您可以在配置文件脚本中设置该值(例如 .bash_profile.zshrc 或类似的脚本)。

已知的限制

全局安装:目前不支持全局安装(例如 pnpm install -g),并且会导致错误。

迁移 :目前还没有自动迁移功能,因此如果您以前将 pnpm 作为 Volta 全局文件安装,则需要通过调用 Volta install pnpm 手动重新安装它。在启用支持并重新安装之前,您可以通过 volta uninstall pnpm 卸载之前安装的 pnpm 包。一旦切换到本机 pnpm 支持,由于目前缺乏卸载实现,可能无法通过调用相同的命令来删除孤立的旧 pnpm 包

相关推荐
qetfw1 小时前
MXU:Tauri 2 + React 的 MaaFramework 跨平台 GUI 源码
前端·python·react.js·前端框架·开源项目·效率工具
甲维斯1 小时前
我要开始吹牛逼了!Kimi K3 “宇宙无敌”!
前端·人工智能
a1117761 小时前
微光小屋-前端养成小游戏 开源项目
前端
kyriewen1 小时前
我让AI给前端项目做了一次完整的Code Review——它和人类的差距,比我想的大得多
前端·javascript·ai编程
张鑫旭1 小时前
快速过下我2026年上半年的前端学了些啥
前端
এ慕ོ冬℘゜2 小时前
前端基础:什么是时间戳?JS获取时间戳三种方法与实战用途
开发语言·前端·javascript
hoLzwEge2 小时前
拯救低效调试!code-inspector-plugin 让代码定位如虎添翼
前端·前端框架·node.js
J船长2 小时前
烂笔头扫盲:LLM Eval 入门:从「感觉挺好」到「数据说话」的工程化落地
前端
skiyee2 小时前
被多个 UView 系 UI 库 “抄” 的 @uni-ku/root 究竟怎么实现?
前端