我应该更新我的 npm 版本还是使用 node.js 提供的一个版本?

S. *_*nke 8 versioning node.js npm package.json

我有一个使用 node.js 14.16.0 的项目。我和我的团队成员都使用那个版本。我使用 npm 6.14.11 而我的团队成员使用 npm 7.xx 这导致 package-lock.json 不同;该lockFileVersion属性在我的 PC 上为 1,但在他们的 PC 上为 2。

我已经使用nvm并且正在考虑添加一个,.nvmrc以便每个人始终使用相同的节点版本,但这并不能解决 npm 版本问题。

我相信使用已安装的 node.js 版本提供的 npm 版本是个好主意。如果下一个大型 LTS 版本使用新的 npm 版本,项目将切换到该版本。但是在NPM 的网站上,他们说:

npm 是一个独立于 Node.js 的项目,更新频率更高。因此,即使您刚刚下载了 Node.js(以及 npm),您也可能需要更新您的 npm。幸运的是,npm 知道如何自我更新!

这让我相信我应该经常更新。

但他们也说:

Node.js 有很多版本!要有效地使用 Node.js 以及 npm,您需要确保您使用的是 Node.js 团队支持的版本。通常,您应该使用标记为“LTS”的 Node.js 版本。

这让我相信我不应该更新而只使用 node.js 提供的一个。

最佳做法是什么?NPM 没有 LTS 的概念吗?

Tro*_*ott 7

npm 有一个 LTS 的概念。事实上,他们标记了一个版本,lts以便您npm install -g npm@lts可以获得最新的 lts 版本,在撰写本文时为 7.6.3。

只要 npm 随附的 node 版本仍然受支持,npm 将继续支持 npm 的任何主要版本。因此他们将支持 npm@6,直到 14 停产,因为 npm@6 随版本 14 一起提供。

也就是说,npm@7 是 npm 的当前版本,只要支持 14,它也将在 14 上得到支持。

如果有疑问,请使用npm@lts(在撰写本文时为第 7 版)。但是,如果您并不真正关心一种或另一种方式并且不想强迫您的同事更新,npm@6只要支持 Node.js 14 ,就会继续接收更新。我会建议更新到最新的npm@6具有npm install -g npm@6虽然。版本 (npm@6npm@7) 应该可以正常工作。您只需要与您的同事选择一个以避免package-lock.json流失(或不关心锁文件流失)。