使用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 包

相关推荐
niucloud-admin7 小时前
web 端前端
前端
胖者是谁10 小时前
EasyPlayerPro的使用方法
前端·javascript·css
EndingCoder11 小时前
索引类型和 keyof 操作符
linux·运维·前端·javascript·ubuntu·typescript
liux352811 小时前
Web集群管理实战指南:从架构到运维
运维·前端·架构
沛沛老爹11 小时前
Web转AI架构篇 Agent Skills vs MCP:工具箱与标准接口的本质区别
java·开发语言·前端·人工智能·架构·企业开发
小光学长11 小时前
基于Web的长江游轮公共服务系统j225o57w(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库
Joe55612 小时前
vue2 + antDesign 下拉框限制只能选择2个
服务器·前端·javascript
ChangYan.13 小时前
monorepo 多包管理识别不到新增模块,解决办法
前端·chrome
Jinuss13 小时前
React元素创建介绍
前端·react.js
济61713 小时前
linux 系统移植(第六期)--Uboot移植(5)--bootcmd 和 bootargs 环境变量-- Ubuntu20.04
java·前端·javascript