【发布时间】:2019-12-23 13:45:23
【问题描述】:
随着我们正在进行的项目越来越大,一位同事开始面临很多涉及pubspec.yaml 的问题。他过去常常通过手动删除 Dart 缓存的依赖项来摆脱它们,但这次他遇到了一个看起来无法解决的问题。
在我们自己的包的lib 目录中导入库时,import 'package:...' 不起作用,只有相对路径。例如,考虑以下结构:
my_package
└─ lib
├─ utils.dart
└─ api.dart
如果他尝试在api.dart 中导入utils.dart,则只能使用相对路径:
import 'utils.dart'; // Works!
import 'package:my_package/utils.dart'; // Error: Target of URI doesn't exist: package:my_package/utils.dart.
这种行为并不一致,因为项目在相同的上下文中有许多其他模块,不需要使用相对路径来导入。此外,团队中没有其他人遇到此问题,但团队中的另一个人突然开始遇到同样的问题。正在蔓延!我们尝试重新安装 Dart、Flutter、IntelliJ,但错误仍然存在。
如果我们删除项目并从 git 再次克隆它,问题就会消失。然而,令人惊讶的是,一旦我们重新启动并使 IntelliJ 的缓存无效,错误就会返回。
奇怪的是,这些错误不会干扰项目的执行,它仍然能够运行。但由于导入中断,IDE 无法链接到该文件,也不会进行常规语法分析。
对解决这个问题有什么想法,甚至如何开始寻找解决方案?
【问题讨论】:
-
我在使用 vs 代码时遇到了同样的问题,我遇到了一个答案,因为您的颤振项目位于代码中打开的文件夹的子文件夹中,不确定它是否适用于 intelliJ stackoverflow.com/a/47831134/10409567
-
@Ggriffo 我检查了您的链接,但不幸的是,这不是我们的情况。谢谢。
-
这也是我最近在 vscode 上遇到的一个错误。通常重新加载 IDE 就足够了。可能是一个错误
-
使用flutter build clean然后重启ide
标签: intellij-idea flutter dart flutter-dependencies