前言
在我翻查Volta
的Github issues
时,偶然间发现有人推荐了一个新的版本管理工具------proto
,就去了解了下,发现用起来还不错,算是集合了众多优点,下面就让我来介绍下。
proto
1、介绍
proto
是一个版本管理工具,它不仅支持Node
,还包括对npm
、pnpm
、Bun
、Deno
、Rust
、Go
、Python
等等语言的管理,和Volta
类似,它也可以为项目配置固定的软件版本,方便项目管理;同时,proto
在安装Node
时,并不会自动安装npm
,而是要用户自行安装,所以当你升级切换node版本时,npm
不会自行升级,即使手动升级了npm
全局安装的包会被保留下来,并不像nvm
那样必须重新安装。
2、示例
安装
proto
ruby
// windows
irm https://moonrepo.dev/install/proto.ps1 | iex
// Linux、MacOS、WSL
curl -fsSL https://moonrepo.dev/install/proto.sh | bash
查看可下载的包版本号
arduino
//
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
下载安装包
arduino
proto install node // 安装最新版本
proto install node 18.14.2 // 安装对应版本
为项目固定工具版本,会在项目根目录生成一个
.prototools
文件,之后在启动项目时就会使用对应的工具版本
proto pin node 14.21.3
proto pin npm 6.14.18
开启根据
.prototools
文件自动下载对应版本的工具包
arduino
// 在安装目录下找到全局的.prototools文件
C:\Users\nekoleamo\.proto\.prototools
// 在文件中增加自动下载配置
[settings]
auto-install = true
proto
下载了新的包之后并不会自动切换到相应的包,因此,需要手动操作切换为最新的包
csharp
proto pin node 22.3.0 --global
3、用后感
在简单使用了两天之后,对于软件目前的功能基本满意,唯一的缺憾就是,在安装Node
时,proto
并不会自动安装该版本最合适的npm
,这点用起来不够方便,这也导致在使用proto pin
命令为项目配置固定版本工具时,必须将node
和npm
版本都加上,而node
和其相适配的npm
还得去查一下才能确定,这点没Volta
方便,不过也无伤大雅。
总结
目前已经卸载Volta
,准备把proto
高强度使用一段时间,在当前的版本下,体验还是不错的,大家如有兴趣,可以进[proto 官网](proto - A multi-language version manager | moonrepo)自行查看相关资料。