nvm-desktop的使用

type
status
date
slug
summary
tags
category
icon
password
在用过windows-nvm和volta后, 又发现了一个新的node版本管理工具, 试用了一段时间后感觉是目前我所用过的最优秀的Node版本管理工具。
首先我想先说说为什么放弃一些“好用”的Node版本管理工具, 陈述一下存在的问题

Volta的问题

  1. 全局看不到东西
    1. 我用antfu的taze和@antfu/ni快速升级项目依赖, 如果全局下有pnpm这个包(能通过npm list -g --depth 0看见),我这样配合一路回车就能快速升级依赖, 但是volta在全局下不止pnpm,yarn也看不见,taze就会提示我你可能没有安装pnpm、yarn, 是否全局安装? 就给我的一路回车这个行为中断了, 次数多了这个糟糕的中断带来的割裂感被无限放大
  1. 和pnpm的契合的不够好
    1. 目前常用的三个软件包管理器, npm、yarn、pnpm, 在这三者中pnpm的体验又是最好的, 但volta对pnpm的支持目前只停留在“实验性”支持, 这个有些不尽人意
  1. 和一些npm库检查工具契合度糟糕
    1. 比如用于检查项目依赖版本情况的npm-check-updates、用于自动调用包管理器命令的ni, 这些好用的东西都对volta有过一些错误报告至今未解决 (错误报告相关issue)
  1. 缓慢的更新速度
    1. 虽然GitHub可以观察到一直在提交, 但上次更新release在2023年1月, 也是这一点促使了我去寻找代替品
  1. 没有卸载功能
    1. 使用volta将18.18.0升级到18.19.0, 他的行为就是再给你装一个新的, 如果你比较喜欢跟着版本更新, 电脑里将会有很多类似的版本(你当然可以手动去目录删除, 但是有些原始不是吗)

nvm的问题

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

nvm-windows的问题

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

pnpm管理Node版本的问题

  1. pnpm也是可以管理Node版本的, 通过脚本安装pnpm
    1. iwr https://get.pnpm.io/install.ps1 -useb | iex ,
      然后使用pnpm env use --global 18 这样管理Node, 但在使用了几个小时候就放弃了, 目前还是有挺多bug的, 无法日常使用

本文主角 - nvm desktop

nvm desktop是一个以可视化界面操作方式管理多个 Node 版本的桌面应用, 有以下优势
  1. 自动根据项目切换Node版本, 人工设置一次, 后续无需干预, 并不需要后台运行着软件
  1. 基于electron, 多端表现高度一致
  1. 引擎由nvmd-command提供, Rust编写
  1. 可视化操作更易于上手
  1. 保留了nvm命令行操作, 只是将命令从nvm xxx 改为了nvmd xxx
  1. 没有那么多水土不服的问题
基于以上优点, 在多人的团队协作中, 这个nvm desktop是一个比较好的Node版本管理解决方案

软件截图

列出所有可供使用的Node版本, 支持换阿里源
notion image
管理已经安装的Node版本
notion image
为项目指定Node版本, 不指定的则为全局Node版本
notion image

客户端下载链接

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

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

建议检查自己设备中的环境变量, 一些工具卸载后依旧会残留环境变量在个人设备中, 可能出现预期之外的错误, 建议进行清理 (比如装过Volta, 再装npm-check-updates, 你会因为这行代码被告知禁止检查全局)。
 
Chat GPT最佳实践 [译]《人性的弱点》TL;DR
前端技术
AI技术
拙见
工具应用
其他知识
编程知识