我现在正在从事一个长期项目一段时间。移动一些文件夹后,正确重构代码的不同部分后,WebStorm的DART Analyzer没有显示任何错误,但是运行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
中。
导入语句使用../../
移动2个文件夹,但是pub或dart2js却没有向上2个文件夹,它仅将1个文件夹上升到1个文件夹。再次查看错误:
Can't read 'file:///Data/ownCloud/cybersecgame/CS%20Game%20Engine/web/UIElements/Data/Variables/Variable.dart'
它在错误的位置寻找文件。我不确定该如何解决此问题,我环顾四周,找不到任何东西。同样,Webstorm的Dart Analyzer没有任何问题,但是酒吧的建造或酒吧都无法找到该文件。
。我在代码中已经多次使用了../../
,但这是第一次引起问题。还有其他类似的错误,但没有正确读取../../
的相同问题。
更新1:
我已经完成了更多测试,并在路径的开始中添加了其他../
,可以在pub build
期间修复错误。但是,现在Webstorm及其DART Analyzer显示出许多错误,因为该路径显然是错误的(1个../
太多(。这是解决方法,但不是解决方案。有人知道为什么酒吧或DART2JS错误地阅读路径吗?以某种方式跳过../
?
Web目录中的代码仅应在两个位置访问文件:
-
Web目录中的内容,通过相对路径
-
通过
package:
Imports
在软件包中的内容
#2很有趣。这可以包括您自己的项目中的文件,您只需要将这些文件放入lib
目录中,然后通过package:my_proj
URI访问它们。
请参阅https://github.com/dart-lang/sample-pop_pop_win/作为示例
另请参见https://www.dartlang.org/tools/package-layout