我正在做一个长期项目已有一段时间了。移动一些文件夹后,正确地重构代码的不同部分,Webstorm的Dart分析器显示没有错误,但运行pub serve
或pub build
失败。
Pub或Dart2JS似乎没有正确遍历文件夹。
这是我得到的第一个错误:
[Error from Dart2JS on CS_Game_Engine|web/main.dart]:
web/UIElements/NodeSettingsItems/TextVariableEditor.dart:4:1:
Can't read 'file:///Data/ownCloud/cybersecgame/CS%20Game%20Engine/web/UIElements/Data/Variables/Variable.dart' (Could not find asset CS_Game_Engine|web/UIElements/Data/Variables/Variable.dart.).
import '../../Data/Variables/Variable.dart';
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
这很有趣,因为您在错误中看到的文件TextVariableEditor.dart
位于web/UIElements/NodeSettingsItems/
目录中。
我尝试访问的文件(Variables.dart
)位于web/Data/Variables/Variable.dart
。
import语句使用../../
向上移动2个文件夹,但是Pub或Dart2JS不会向上移动2个文件夹,它只会向上移动1个文件夹。再次看到错误:
Can't read 'file:///Data/ownCloud/cybersecgame/CS%20Game%20Engine/web/UIElements/Data/Variables/Variable.dart'
它正在寻找错误位置的文件。我不知道该怎么做才能解决这个问题,而且我环顾四周并且找不到任何东西。同样,Webstorm的Dart Analyzer没有显示任何问题,但pub build或pub serve都失败了,无法找到文件。
我之前在代码中多次使用过../../
,但这是第一次导致问题。还有其他与此类似的错误,但存在同样问题,即未正确读取../../
。
我已经做了更多测试,并在路径的开头添加了额外的../
来修复pub build
期间的错误。但是,现在Webstorm和它的Dart Analyzer显示了很多错误,因为路径显然是错误的(1太多../
)。这是一种解决方法,但不是修复方法。有人知道为什么pub或者Dart2JS正在错误地读取路径吗?以某种方式跳过其中一个../
?
答案 0 :(得分:0)
网络目录中的代码只能访问两个地方的文件:
网络目录中的内容,通过相对路径
通过package:
导入包中的内容
#2很有意思。这可以包括您自己项目中的文件,您只需将这些文件放在lib
目录中,然后通过package:my_proj
URI访问它们。