如何对所有依赖项进行版本升级?

Posted

技术标签:

【中文标题】如何对所有依赖项进行版本升级?【英文标题】:How can I version bump all my dependencies? 【发布时间】:2017-04-27 11:13:00 【问题描述】:

yarn outdated 提供了很多信息,但我想避免一个包一个包运行 yarn upgrade

从 yarn 的文档中,据说只有不带参数的 yarn upgrade 会升级所有依赖项,但我的项目的 package.jsonyarn outdated 没有变化,显示的包版本与以前相同。

是否有一些命令或参数会影响我的所有依赖项?

如果不是,是否以某种方式不鼓励这种做法?

【问题讨论】:

【参考方案1】:

您可以使用 yarn upgrade 将您的包更新到 package.json 中指定的最新版本,无需任何参数。

这取自docs:

yarn upgrade

此命令将所有依赖项更新到其最新版本,基于 package.json 文件中指定的版本范围。 yarn.lock 文件也将被重新创建。

这只会更新 package.json 中允许升级的包,例如使用^(例如^0.13.0 将更新到版本0.14.0,如果它存在)。这不会更新您的 package.json 文件,但会更新 yarn.lock。

如果您想将依赖项更新到最新版本,您可以使用包 npm-check-updates,它将更新您的 package.json:

$ yarn global add npm-check-updates
$ npm-check-updates -u
$ yarn upgrade

【讨论】:

对。也许确实如此。但这并没有反映在我的package.json 中,yarn outdated 在完整运行yarn upgrade 之前和之后没有任何区别。我错过了什么? 我意识到yarn upgrade 仅在您使用^~ 时将包更新到package.json 中的最新版本。如果您的包被指定为固定版本,这不会改变。我已经编辑了我的答案以添加一个选项来更新你的 package.json。 你试过yarn upgrade --latest命令吗?根据文档,据我了解,它也会更新 package.json。【参考方案2】:

如果您的依赖项使用范围版本("^x.x.x""~x.x.x" 等),如果最新版本也匹配该范围,则不会更新您的 package.json,只会更新您的 yarn.lock

如果您希望更新您的package.json

    将所有依赖项更改为固定版本 ("x.x.x") 运行yarn 以更新yarn.lock 运行yarn upgrade-interactive 并选择要升级的所有依赖项

现在您的yarn.lockpackage.json 都将反映确切的最新版本。

【讨论】:

【参考方案3】:

只需运行 yarn upgrade-interactive --latest 并使用空格按钮选择要更新的包,然后按 Enter 即可更新。

【讨论】:

注意:在使用upgrade-interactive之前,您需要为yarn导入interactive-tools插件,方法是运行以下命令:yarn plugin import interactive-tools【参考方案4】:

将所有软件包升级到最新版本

yarn upgrade --latest

【讨论】:

【参考方案5】:

yarn v2 用户的回答。

如果您还没有,请导入 interactive-tools 插件:

$ yarn plugin import interactive-tools

然后运行它:

$ yarn upgrade-interactive

注意:这也会修改package.json 中的 semvers。

【讨论】:

【参考方案6】:

我总是遵循官方文档:)

yarn add --dev yarn-upgrade-all

源代码:https://yarnpkg.com/package/yarn-upgrade-all

【讨论】:

这不是官方文档,这是第三方包 啊,好的,谢谢。你能帮我找到官方网站/文档吗? 不是官方文档(内置功能),但这对我有用...yarn add --dev yarn-upgrade-all 然后在 package.json 根文件中我添加了 "up": "yarn-upgrade-all""scripts",现在在项目根目录下执行yarn up

以上是关于如何对所有依赖项进行版本升级?的主要内容,如果未能解决你的问题,请参考以下文章

通过阅读 package.json 升级 React 版本及其依赖项

如何自动升级 Flutter 依赖

依赖项升级后 Android Firebase 依赖项出现颤振问题

数据库数据升级,按环境进行版本控制

升级包而不使用 pip 升级依赖项?

错误:请将您的依赖项升级到 core-js@3 的实际版本