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

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

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

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

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

【问题讨论】:

    标签: javascript dependency-management yarnpkg


    【解决方案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

    1. 将所有依赖项更改为固定版本 ("x.x.x")
    2. 运行yarn 以更新yarn.lock
    3. 运行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
          猜你喜欢
          • 2011-09-28
          • 1970-01-01
          • 2020-02-27
          • 2017-08-29
          • 2016-03-21
          • 2016-11-27
          • 2022-08-03
          • 1970-01-01
          • 2018-09-24
          相关资源
          最近更新 更多