如何避免 gen_l10n/app_localizations.dart 中的“依赖引用包”问题?

33

在我的Flutter应用中,我遇到了这个与lint规则相关的问题:depend_on_referenced_packages

这里输入图片描述

该文件是在此处生成的

这里输入图片描述

你有没有想法如何解决这个问题而不需要忽略'depend_on_referenced_packages'?

在我的pubspec.yaml中,我只有这个:

这里输入图片描述

非常感谢。

9个回答

36

这个可行。我真的很喜欢这个解决方案,因为它解决了问题,而不仅仅是隐藏错误。但我仍然想知道是什么导致了这个lint? - Aymen Dennoub
4
首先,“引用包”是由其他你明确依赖的包所引用的包,如pubspec.yaml所示。它可以无需显式导入而正常工作,因为这些包也会被缓存,但很难知道你正在使用的包的信息,例如版本。因此,建议明确地执行此操作。 - Yusuke Hakamaya
我刚刚碰到了这个问题。对我来说,我不小心删除了我的 pubspec.yaml 文件中的 dependencies: 行。只需恢复它就可以让一切回到正常状态。 - berkaykurkcu

7

我不知道如何忽略仅生成的软件包,但以下是关闭该规则的方法:

  1. 在您的项目根目录中创建一个名为analysis_options.yaml的文件。
  2. 复制以下内容:
include: package:flutter_lints/flutter.yaml

linter:
  rules:
    depend_on_referenced_packages: false

有关此文件的其他信息,请访问https://dart.dev/guides/language/analysis-options


虽然我通常建议将其保留为“true”,并在引用的包上添加明确的依赖关系。 - undefined

5
根据 文档,仅依赖于 flutter_localizations 是不够的。你的依赖应该像这样:
dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  intl: ^0.17.0 # Add this line

3
我已经在我的 pubspec 中添加了所有内容,但我仍然遇到了 depend_on_referenced_packages 问题。 - NonowPoney

4

对我来说,这个错误是因为我不小心把我的包名放在了dev_dependencies部分。把我的包名放在dependencies部分解决了我的问题。


3

我在我的应用程序中的超过十几个位置使用collection.dart,最近在Flutter 3.0升级之后,这个lint开始弹出。我认为depend_on_referenced_packages是一个非常有用的lint,可以警告您不必要的导入。我永远不会完全关闭该项目(@ EzPizza的答案)。

您可以通过将以下注释添加到文件中来抑制受影响的文件的lint:

// ignore_for_file: depend_on_referenced_packages

但最好解决问题的根本原因,并将指定的依赖项包含在您的pubspec.yaml中。比如@mkobuolys提出的例子。


3

对于我来说,我无意中将包url_launcher: ^6.1.7放在了dev_dependencies:下面。

解决方法:

我从dev_dependencies移除了该包,并在dependencies:下方添加了它。


0

我发表这篇文章只是因为其他答案要么没有帮助到我,要么我没有理解它们。

我在另一个包(即page_transition)上遇到了同样的警告。以下是我找到的问题原因:

当导入一个包时,请在您的pubspec中添加对它的依赖。

明确地依赖于您引用的包可以确保它们始终存在,并允许您对它们进行依赖约束,以防止破坏性更改。

这意味着您寻找的解决方案不应该是忽略它。

以下是我如何解决它的方法: 我去了pubspec.yaml并在dependencies下添加了以下内容:

dependencies:
  page_transition: ^2.0.9

您可以为您的包添加依赖项,您需要查找它。我刚刚谷歌搜索了“flutter app_localizations”,然后出现了这个,您可以在安装选项卡下查看最新版本。 localization 2.1.0

因此,如果您正在使用该软件包作为示例,则必须添加

dependencies:
  localization: ^2.1.0

-1

这是官方链接

你应该直接依赖而不是间接依赖。


虽然此链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。如果链接页面更改,则仅有链接的答案可能会失效。- 来自审核 - CbL

-1

对我来说,出现这个警告的原因是我使用的包还不支持 Flutter 3。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接