(关于今天的博客)简单分享一下我的经验:
大概在一年前的时候关注到 mise,当时因为它的一些怪癖(1. completion 能力依赖作者自己的另一个项目,并且还需要手动装;2. 初始化时会默认发网络请求)不是很喜欢。去年经手的项目里涉及的语言越来越多,逐渐注意到 asdf 的一些短板:
- 切 python 版本依赖 python-build,浪费时间又容易挂;
- 有时候会希望切 node 版本时一起切 npm install -g 拉下来的包版本,asdf 没有这个能力(golang 也会有这个问题,例如 gopls 就强依赖 go 版本);
- 虽然用 go 重写了但插件都是 bash,我并不喜欢写 bash;
尝试了一些解决方案,包括弄了一个直接装 python binary 的插件、一些用于生成插件的脚本,甚至尝试转向了 nix flake,总体上还是有些滞塞。但是后来突然发现 mise 完美地解决了这些问题
- 也是直接装 binary 的
- 通过 npm:xxx / go:xxx 这些 “backend” 直接实现了对所有 npm 和 go package 的管理
- 暂时还没遇到需要我自己写插件的 case
- 把 direnv 的活也干了,少一个依赖
tldr:非常推荐
大概在一年前的时候关注到 mise,当时因为它的一些怪癖(1. completion 能力依赖作者自己的另一个项目,并且还需要手动装;2. 初始化时会默认发网络请求)不是很喜欢。去年经手的项目里涉及的语言越来越多,逐渐注意到 asdf 的一些短板:
- 切 python 版本依赖 python-build,浪费时间又容易挂;
- 有时候会希望切 node 版本时一起切 npm install -g 拉下来的包版本,asdf 没有这个能力(golang 也会有这个问题,例如 gopls 就强依赖 go 版本);
- 虽然用 go 重写了但插件都是 bash,我并不喜欢写 bash;
尝试了一些解决方案,包括弄了一个直接装 python binary 的插件、一些用于生成插件的脚本,甚至尝试转向了 nix flake,总体上还是有些滞塞。但是后来突然发现 mise 完美地解决了这些问题
- 也是直接装 binary 的
- 通过 npm:xxx / go:xxx 这些 “backend” 直接实现了对所有 npm 和 go package 的管理
- 暂时还没遇到需要我自己写插件的 case
- 把 direnv 的活也干了,少一个依赖
tldr:非常推荐