使用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 [email protected] // 切换版本 需要选择体具体的版本

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 [email protected]
volta pin [email protected]

"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 包

相关推荐
110546540110 分钟前
23、电网数据管理与智能分析 - 负载预测模拟 - /能源管理组件/grid-data-smart-analysis
前端·能源
开发者小天11 分钟前
React中startTransition的使用
前端·react.js·c#
@PHARAOH1 小时前
WHAT - 缓存命中 Cache Hit 和缓存未命中 Cache Miss
前端·缓存
海天胜景2 小时前
无法加载文件 E:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本
前端·npm·node.js
MingT 明天你好!2 小时前
在vs code 中无法运行npm并报无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查
前端·npm·node.js·visual studio code
老兵发新帖2 小时前
pnpm 与 npm 的核心区别
前端·npm·node.js
超级土豆粉2 小时前
怎么打包发布到npm?——从零到一的详细指南
前端·npm·node.js
OpenTiny社区2 小时前
TinyEngine 2.5版本正式发布:多选交互优化升级,页面预览支持热更新,性能持续跃升!
前端·低代码·开源·交互·opentiny
声声codeGrandMaster2 小时前
Django框架的前端部分使用Ajax请求一
前端·后端·python·ajax·django
重生之后端学习4 小时前
02-前端Web开发(JS+Vue+Ajax)
java·开发语言·前端·javascript·vue.js