xChar
·a year ago

在用过windows-nvm和volta后, 又发现了一个新的node版本管理工具, 试用了一段时间后感觉是目前我所用过的最优秀的Node版本管理工具。

首先我想先说说为什么放弃一些“好用”的Node版本管理工具, 陈述一下存在的问题

Volta的问题

  1. 全局看不到东西

    我用antfu的taze和@antfu/ni快速升级项目依赖, 如果全局下有pnpm这个包(能通过npm list -g --depth 0看见),我这样配合一路回车就能快速升级依赖, 但是volta在全局下不止pnpm,yarn也看不见,taze就会提示我你可能没有安装pnpm、yarn, 是否全局安装? 就给我的一路回车这个行为中断了, 次数多了这个糟糕的中断带来的割裂感被无限放大

  2. 和pnpm的契合的不够好

    目前常用的三个软件包管理器, npm、yarn、pnpm, 在这三者中pnpm的体验又是最好的, 但volta对pnpm的支持目前只停留在“实验性”支持, 这个有些不尽人意

  3. 和一些npm库检查工具契合度糟糕

    比如用于检查项目依赖版本情况的npm-check-updates、用于自动调用包管理器命令的ni, 这些好用的东西都对volta有过一些错误报告至今未解决 (错误报告相关issue)

  4. 缓慢的更新速度

    虽然GitHub可以观察到一直在提交, 但上次更新release在2023年1月, 也是这一点促使了我去寻找代替品

  5. 没有卸载功能

    使用volta将18.18.0升级到18.19.0, 他的行为就是再给你装一个新的, 如果你比较喜欢跟着版本更新, 电脑里将会有很多类似的版本(你当然可以手动去目录删除, 但是有些原始不是吗)

nvm的问题

  1. nvm并没有Windows版本, Windows上使用的叫做nvm-windows

nvm-windows的问题

  1. 不支持根据项目自动切换Node版本, 也就是说需要在切换项目的时候去使用命令手动切换Node版本, 作者也表示不会在这个项目中提供支持, 作者原话在这个链接中可以看到
  2. 虽然作者表示不会在这个项目中添加自动切换, 但是还是说启动了一个新的项目, 用于改善这一问题, 只是这一项目还未完成, 更多信息可以在链接中看到https://github.com/coreybutler/nvm-windows/wiki/Runtime

pnpm管理Node版本的问题

  1. pnpm也是可以管理Node版本的, 通过脚本安装pnpm

    iwr https://get.pnpm.io/install.ps1 -useb | iex ,

    然后使用pnpm env use --global 18 这样管理Node, 但在使用了几个小时候就放弃了, 目前还是有挺多bug的, 无法日常使用

本文主角 - nvm desktop

nvm desktop是一个以可视化界面操作方式管理多个 Node 版本的桌面应用, 有以下优势

  1. 自动根据项目切换Node版本, 人工设置一次, 后续无需干预, 并不需要后台运行着软件
  2. 基于electron, 多端表现高度一致
  3. 引擎由nvmd-command提供, Rust编写
  4. 可视化操作更易于上手
  5. 保留了nvm命令行操作, 只是将命令从nvm xxx 改为了nvmd xxx
  6. 没有那么多水土不服的问题

基于以上优点, 在多人的团队协作中, 这个nvm desktop是一个比较好的Node版本管理解决方案

软件截图

列出所有可供使用的Node版本, 支持换阿里源

管理已经安装的Node版本

为项目指定Node版本, 不指定的则为全局Node版本

客户端下载链接

https://github.com/1111mp/nvm-desktop/releases/latest

这个软件并没有什么需要注意的, 但是因为一些玄学问题, 我建议你卸载干净电脑中的Node, nvm, Volta之类的软件, 重启电脑后再安装nvm-desktop

如果你是从其它管理工具换过来的

建议检查自己设备中的环境变量, 一些工具卸载后依旧会残留环境变量在个人设备中, 可能出现预期之外的错误, 建议进行清理 (比如装过Volta, 再装npm-check-updates, 你会因为这行代码被告知禁止检查全局)。

Loading comments...