随着我们正在进行的项目越来越大,一位同事开始面临很多涉及 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 无法链接到该文件,也不会进行常规语法分析。
关于解决这个问题的任何想法,甚至如何开始寻找解决方案?
最佳答案
这已在 Flutter v1.9.1+hotfix.2 中解决。
关于intellij-idea - Flutter 导入随机停止工作,原因不明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57538101/