ChatGPT解决这个技术问题 Extra ChatGPT

Yarn - 如何将 package.json 中的每个依赖项更新到最新版本?

我有一个带有已弃用依赖项的反应应用程序。为了使其正常工作,我必须将依赖项更新为较新(但稳定)的版本。

根据 this stakoverflow 线程,要将 package.json 中的依赖项更新到最新版本,npm-check-updates 是 npm 的最佳选择。但是,我使用纱线进行包管理。纱线中是否有等效的 npm-check-updates 。因此,我使用单个包管理器来管理我的依赖项。

npm-check-updates 与纱线完全兼容。只需在您的项目目录中运行 npx npm-check-updates

V
Vahid Alimohamadi

yarn upgrade-interactive --latest

但您必须先有一个 yarn.lock 文件才能执行此操作。如果您使用 npm,则必须先删除 package-lock.json。然后运行 yarn 创建结构。之后您可以执行upgrade-interactive。没有它,yarn 显示升级,但在 package.json 中没有变化和效果。


清除您的 node_modules 文件夹和 yarn.lockyarn-error.log 文件。然后尝试 yarn --ignore-engines。安装成功后,尝试yarn upgrade-interactive --latest
如果所有这些都没有成功,那么尝试yarn outdated并直接在package.json中手动更新软件包。在做之前你需要有放松的心态:)
喜欢 yarn outdated,因为如果有很长的部门列表,这似乎更合乎逻辑:)
现代版 Yarn yarnpkg.com/cli/upyarn up
J
Jeremy Caney

您可以使用以下命令将单个软件包升级到最新的主要版本:

yarn upgrade <package-name> --latest

你要他一一列出他所有的包裹?
有时您只想更新一个依赖项。要更新补丁版本(major.minor.patch),您可以使用例如 yarn upgrade @1.1.x (使用您拥有的任何主要/次要版本)
@zmx 是此页面中的最佳答案。升级整个依赖项可能最终会陷入困境,不幸的是,其他建议并不总是有效。
这个答案是错误的——这个命令不会用最新版本更新 package.json。
A
Ahmed Mokhtar

您可以试试这个 npm 包 yarn-upgrade-all。此软件包将删除 package.json 中的所有软件包并再次添加它,这会将其更新到最新版本。

安装:

npm install -g yarn-upgrade-all

用法:在您的项目目录中运行:

yarn yarn-upgrade-all

谢谢!这是一个很好的选择,只有一个谨慎。来自官方文档“不要使用 yarn 在 Windows 上安装它,因为存在错误 github.com/yarnpkg/yarn/issues/2224
此软件包对 package.json 中的所有软件包运行 yarn remove && yarn add 太慢了,但可以!较短的版本:npx yarn-upgrade-all
yarn yarn-upgrade-all 对我不起作用,但 npx yarn-upgrade-all 起作用。谢谢@AndrewZolotarev
运行 npx yarn-upgrade-all 将我的 "vue": "^3.0.5" 依赖项更改为 "vue": "^2.6.14",这是我没想到的。显然,这破坏了构建。
npx yarn-upgrade-all
J
Jeremy Caney

对我有用的是来自 a comment by @Andrew Zolotarev,它使用

npx yarn-upgrade-all

现在我使用 npx npm-upgrade。我认为它对我来说更好用。
A
Arosha

如果你想用 yarn 更新包并相应地更新 package.json,

安装 syncyarnlock -yarn global add syncyarnlock 更新包 -yarn upgrade 或yarn upgrade --latest 将yarn.lock的更新版本同步到package.json -syncyarnlock -s


实际上,唯一的答案正是要求的 - 谢谢!
请注意,您需要在最后一步再次运行 yarn install - 除了再次更新 yarn.lock 之外,它不会执行任何操作,但如果您不这样做,yarn 稍后会抱怨版本限制在生成 yarn.lock使用现在已过时。
j
jmarceli

使用 Yarn v2 和 v3 (Berry)

您必须先安装适当的插件:

yarn plugin import interactive-tools

然后执行

yarn upgrade-interactive

来源:https://yarnpkg.com/cli/upgrade-interactive


A
Ali Fensome

清单已过时

yarn outdated

将所有依赖项升级到最新版本

这将升级到最新版本,无论包是否稳定或包之间的版本控制限制。

yarn upgrade --latest

Yarn docs


这将安装不稳定的版本——不是 OP 要求的。
A
Amr

如果您想将包添加到您的 package.json 以进行开发协作

yarn add yarn-upgrade-all -D
yarn yarn-upgrade-all

顺便说一下,包使用命令(重新安装所有包)

yarn install package1 package2 packageN

R
Raine Revere

npm-check-updates 与纱线完全兼容。只需在您的项目目录中运行 npx npm-check-updates

npm-check-updates 是一个经过实战考验、已有 8 年历史的库,可以正常工作。它提供交互模式和医生模式,用于自动运行测试和识别损坏的升级。

免责声明:我是 npm-check-updates 的主要贡献者。

https://i.stack.imgur.com/76CS0.png

互动+小组模式:

https://i.stack.imgur.com/sbuRz.png


为什么不:yarn upgrade --latest 无需额外安装软件包