我从NVM切换到Volta-为什么?
#javascript #node #nvm #volta

我已经使用了很长一段时间来管理机器上的节点的不同版本。 NVM立即留下了我使用RVM(Ruby版本管理器)的时间。

除了伟大的名字和大量使用外,NVM还有一些可以通过更现代的替代方案轻松解决的问题。

我最近开始使用Volta,与NVM相比,它确实具有许多优势。

volta pin node v14

首先,它非常快(Volta声称比NVM快40倍)。切换到不同版本或安装新节点/NPM版本是一种真正的乐趣。启动时间和项目版本切换非常快。

第二,它始终在项目之间加载您需要的正确节点版本,而NVM默认不这样做。使用NVM,每次您切换到一个与默认版本的其他节点版本一起运行另一个节点版本时,您都需要运行nvm use <NODE_VERSION_NUMBER>,或者在每个项目中锁定node版本时,您都会仍然需要在您的bash配置文件终端中包含一个加载的脚本,该脚本会自动搜索.nvmrc并在需要时更新节点版本。

volta(以及像pnpm这样的其他一些)在引擎盖下做到这一点。这样,当您使用不同的节点版本处理多个存储库时,您将不会出于任何不好的惊喜,以更新错误的节点版本。

例如,volta pin node@14将将您的固定版本存储在您项目的package.json中。

  "volta": {
  "node": "14.21.2"
 }

每次您进入一个项目时,Volta都会读取您的package.json文件,并自动设置相关的Nodejs版本,该版本反映了固定的内容。

使用Volta,您可以很容易地在全球范围内安装和固定您喜欢的软件包管理器。例如volta install yarn && volta pin yarn@3用于纱线v3。

也很高兴提及Volta支持与NVM相同的.nvmrc配置文件。

全球库

使用Volta,在您的计算机上全球安装的软件包与安装它们的正确节点版本相关联,因此我们确保使用在当前运行节点版本上使用的稳定软件包。

Windows支持

最后,尽管您可能不需要这个,但是很高兴提到Windows也可以使用Volta,而NVM仅在Mac/Linux机器上可用。