【发布时间】:2017-11-28 19:27:47
【问题描述】:
我现在正在从事一个长期项目。移动一些文件夹,正确重构代码的不同部分后,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 都失败了,无法找到文件。
我之前在我的代码中多次使用../../,但这是第一次引起问题。还有其他类似的错误,但同样的问题是没有正确读取../../。
更新 1:
我已经完成了更多测试,并在路径的开头添加了一个额外的../ 可以修复pub build 期间的错误。然而,现在 Webstorm 和它的 Dart Analyzer 显示了很多错误,因为路径显然是错误的(1 太多 ../)。这是一种解决方法,但不是修复方法。有人知道为什么 pub 或 Dart2JS 读取路径不正确吗?不知何故跳过../之一?
【问题讨论】:
标签: build dart directory dart2js