前端开发工具推荐02 proto

3,135 阅读2分钟

前言

  在我翻查VoltaGithub issues时,偶然间发现有人推荐了一个新的版本管理工具——proto,就去了解了下,发现用起来还不错,算是集合了众多优点,下面就让我来介绍下。

proto

1、介绍

  proto是一个版本管理工具,它不仅支持Node,还包括对npmpnpmBunDenoRustGoPython等等语言的管理,和Volta类似,它也可以为项目配置固定的软件版本,方便项目管理;同时,proto在安装Node时,并不会自动安装npm,而是要用户自行安装,所以当你升级切换node版本时,npm不会自行升级,即使手动升级了npm全局安装的包会被保留下来,并不像nvm那样必须重新安装。

2、示例

安装proto

// windows
irm https://moonrepo.dev/install/proto.ps1 | iex
// Linux、MacOS、WSL
curl -fsSL https://moonrepo.dev/install/proto.sh | bash

查看可下载的包版本号(在 0.44 版本之后,官方对 list 与 list-remote 命令做了合并,新版本使用 proto versions 查询版本)

// 0.44 版本之前
proto list-remote node
...
18.10.0
18.11.0
18.12.0
18.12.1
18.13.0
18.14.0
18.14.1
18.14.2

// 0.44 版本之后
proto versions go
...
1.23.0-rc1
1.23.0-rc2
1.23.0
1.23.1
1.23.2
1.23.3
1.23.4 - installed 12/25/24
1.24.0-rc1

下载安装包

proto install node // 安装最新版本
proto install node 18.14.2 // 安装对应版本

为项目固定工具版本,会在项目根目录生成一个.prototools文件,之后在启动项目时就会使用对应的工具版本

proto pin node 14.21.3
proto pin npm 6.14.18

开启根据.prototools文件自动下载对应版本的工具包

// 在安装目录下找到全局的.prototools文件
C:\Users\nekoleamo\.proto\.prototools
// 在文件中增加自动下载配置
[settings]
auto-install = true

proto下载了新的包之后并不会自动切换到相应的包,因此,需要手动操作切换为最新的包

proto pin node 22.3.0 --global

当然,也可以下载时直接设置为最新包

proto install node 22.3.0 --pin global
3、用后感

  在简单使用了两天之后,对于软件目前的功能基本满意,唯一的缺憾就是,在安装Node时,proto并不会自动安装该版本最合适的npm,这点用起来不够方便,这也导致在使用proto pin命令为项目配置固定版本工具时,必须将nodenpm版本都加上,而node和其相适配的npm还得去查一下才能确定,这点没Volta方便,不过也无伤大雅。

总结

  目前已经卸载Volta,准备把proto高强度使用一段时间,在当前的版本下,体验还是不错的,大家如有兴趣,可以进[proto 官网](proto - A multi-language version manager | moonrepo)自行查看相关资料。