【问题标题】:How can i access to transitive dependencies to update them in flutter我如何访问传递依赖项以在 flutter 中更新它们
【发布时间】:2022-12-13 09:55:57
【问题描述】:

当我运行 pub upgrade 时,我得到了这些提示,它们已经过时了,但不知道我可以在哪里更新它们。我什至在我的正常 dependencies 中没有它们

谁能告诉我这是什么,我该如何更新它们?

我试图更新所有内容.. dependencies,gradle Android studio flutter sdk 我都更新了,但是当我运行 pup upgrade 时这些仍然弹出

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    “瞬态依赖”意味着你的程序依赖它,因为你有一个依赖它的依赖。所以换句话说,您使用的包使用例如async 2.8.2。除了等待该包所有者更新之外,您几乎无能为力他们的包,因此您可以更新该包。

    要找出您的哪些依赖项使用了哪些其他依赖项,您可以运行:

    flutter pub deps
    

    它将向您显示带有版本号的依赖关系树。

    【讨论】:

    • 它确实显示了它们,但是您如何实际更新它们?
    【解决方案2】:

    1- 如果您需要更新特定的软件包传递依赖使用替换运行此命令包裹名字具体包名:

    flutter pub upgrade package_name

    2- 更新到最新的兼容版本所有依赖项pubspec.yaml 文件中列出的包括传递依赖运行此命令:

    flutter pub upgrade

    【讨论】:

    • 命令“flutter pub outdated”显示“当前、可升级、可解析、最新”的包版本。在我的例子中,它显示版本“当前、可升级、可解决”是相同的,但“最新”版本更高。我尝试使用“flutter pub upgrade xml”命令升级到最高版本,但它没有升级,我收到消息:“xml 6.1.0(6.2.0 可用)”,“13 个包具有与依赖项不兼容的较新版本约束”。知道如何解决吗?
    【解决方案3】:

    尝试这个

    在你的pubspace.yaml

    dependencies:
        xml: 1.0.0
    dependencies_override:
        xml: 6.2.0
    

    【讨论】:

      【解决方案4】:

      根据达特的说法,

      传递依赖项:您的包间接使用的一种依赖项,因为它的一个依赖项需要它。如果您的包依赖于 A,而 A 又依赖于 B,而 B 又依赖于 C,那么 A 是直接依赖,而 B 和 C 是传递依赖。

      一个名为 pubspec.lock 的文件,它为包所依赖的每个直接和传递依赖项指定具体版本和其他标识信息。

      与仅列出直接依赖项并允许版本范围的 pubspec 不同,锁定文件全面地将整个依赖关系图固定到包的特定版本。锁定文件确保您可以重新创建应用程序使用的包的准确配置。

      当您运行 pub get、pub upgrade 或 pub downgrade 时,pub 会自动为您生成锁定文件。如果您的包是一个应用程序包,您通常会将其签入源代码管理。对于库包,你通常不会。


      如果你想更新你的传递依赖,它们可以在你的“pubspec.lock”文件中找到。你可以在那里升级它们。

      【讨论】:

        猜你喜欢
        • 2020-08-04
        • 1970-01-01
        • 1970-01-01
        • 2021-09-29
        • 2017-02-02
        • 1970-01-01
        • 2021-07-26
        • 2019-10-31
        • 2016-11-01
        相关资源
        最近更新 更多