node.js - 我应该更新我的 npm 版本还是使用 node.js 提供的一个?
问题描述
我有一个使用 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的概念吗?
解决方案
npm 有一个 LTS 的概念。事实上,他们标记了一个版本lts
,以便您npm install -g npm@lts
可以获得最新的 lts 版本,在撰写本文时它是 7.6.3。
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@6
或npm@7
)都应该可以正常工作。你只需要和你的同事选择一个来避免package-lock.json
流失(或者不关心锁文件流失)。
推荐阅读
- visual-studio-code - 如何在 JsDoc(VS Code / IntelliSense)中引用另一个文件中的类而不直接导入?
- c# - DropdownList 给控制器调用模型一个空值
- python - 在 apache 光束管道中使用 MatchFiles() 来获取文件名并在 python 中解析 json
- reactjs - 用于代理添加客户端 ID 的 Okta 重定向 URL
- asp.net-core-webapi - 如何从 Web API 调用 IdentityServer UserManager 方法?
- python - 如何在 Python 中同时处理浮点数和数组输入?
- android-mediacodec - 是否可以使用 MediaExtractor 读取 VES(视频基本流)?
- javascript - 在纯 JavaScript 中使用平方距离函数识别中心
- c++ - 为什么clang并不总是为相同的静态constexpr产生恒定值
- android - Videoview 不在 nougat 24 中显示,但在 android Q 29 中显示和工作