我应该更新我的 npm 版本还是使用 node.js 提供的版本?
Should I update my npm version or use the one node.js provides?
我有一个使用 node.js 14.16.0 的项目。我和我的团队成员都使用该版本。
我使用 npm 6.14.11,我的团队成员使用 npm 7.x.x。
这导致 package-lock.json 不同; lockFileVersion
属性 在我的电脑上是 1,但在他们的电脑上是 2。
我已经在使用 nvm
并且正在考虑添加一个 .nvmrc
这样每个人总是使用相同的节点版本,但这并不能解决 npm 版本问题。
我认为使用安装的 node.js 版本提供的 npm 版本是个好主意。如果下一个大型 LTS 版本使用新的 npm 版本,项目将切换到那个版本。但是在 NPM's site 他们说:
npm is a separate project from Node.js, and tends to update more frequently. As a result, even if you’ve just downloaded Node.js (and therefore npm), you’ll probably need to update your npm. Luckily, npm knows how to update itself!
这让我相信我应该经常更新。
但他们也说:
Node.js has lots of versions! To use Node.js, and therefore npm, effectively, you’ll want to make sure that you are on a version that is supported by the Node.js team. In general, you should use the version of Node.js labelled “LTS”.
这让我相信我不应该更新,而只是使用 node.js 提供的那个。
最佳做法是什么?
npm 有一个 LTS 的概念。他们过去常常标记一个版本 lts
,这样你就可以 npm install -g npm@lts
并获得最新的 lts 版本,但是,唉,没有更多了。
npm 将继续支持任何主要版本的 npm,只要它附带仍然受支持的节点版本。所以他们将支持 npm@6 直到 14 停产,因为 npm@6 附带版本 14。
也就是说,npm@7 是 npm 的当前版本,只要支持 14,它也将在 14 上受支持。
如果您不想强迫您的同事更新,只要支持 Node.js 14,npm@6
将继续接收更新。不过,我建议使用 npm install -g npm@6
更新到最新的 npm@6
。任何一个版本(npm@6
或 npm@7
)都应该可以正常工作。你只需要和你的同事一起选择一个来避免 package-lock.json
流失(或者不关心锁文件流失)。
我有一个使用 node.js 14.16.0 的项目。我和我的团队成员都使用该版本。
我使用 npm 6.14.11,我的团队成员使用 npm 7.x.x。
这导致 package-lock.json 不同; lockFileVersion
属性 在我的电脑上是 1,但在他们的电脑上是 2。
我已经在使用 nvm
并且正在考虑添加一个 .nvmrc
这样每个人总是使用相同的节点版本,但这并不能解决 npm 版本问题。
我认为使用安装的 node.js 版本提供的 npm 版本是个好主意。如果下一个大型 LTS 版本使用新的 npm 版本,项目将切换到那个版本。但是在 NPM's site 他们说:
npm is a separate project from Node.js, and tends to update more frequently. As a result, even if you’ve just downloaded Node.js (and therefore npm), you’ll probably need to update your npm. Luckily, npm knows how to update itself!
这让我相信我应该经常更新。
但他们也说:
Node.js has lots of versions! To use Node.js, and therefore npm, effectively, you’ll want to make sure that you are on a version that is supported by the Node.js team. In general, you should use the version of Node.js labelled “LTS”.
这让我相信我不应该更新,而只是使用 node.js 提供的那个。
最佳做法是什么?
npm 有一个 LTS 的概念。他们过去常常标记一个版本 lts
,这样你就可以 npm install -g npm@lts
并获得最新的 lts 版本,但是,唉,没有更多了。
npm 将继续支持任何主要版本的 npm,只要它附带仍然受支持的节点版本。所以他们将支持 npm@6 直到 14 停产,因为 npm@6 附带版本 14。
也就是说,npm@7 是 npm 的当前版本,只要支持 14,它也将在 14 上受支持。
如果您不想强迫您的同事更新,只要支持 Node.js 14,npm@6
将继续接收更新。不过,我建议使用 npm install -g npm@6
更新到最新的 npm@6
。任何一个版本(npm@6
或 npm@7
)都应该可以正常工作。你只需要和你的同事一起选择一个来避免 package-lock.json
流失(或者不关心锁文件流失)。