【问题标题】:Dart2JS Pub Build Fails to Traverse Project Folders CorrectlyDart2JS Pub Build 无法正确遍历项目文件夹
【发布时间】:2017-11-28 19:27:47
【问题描述】:

我现在正在从事一个长期项目。移动一些文件夹,正确重构代码的不同部分后,Webstorm 的 Dart 分析器显示没有错误,但运行 pub servepub 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


    【解决方案1】:

    web 目录中的代码只能访问两个地方的文件:

    1. 网页目录中的东西,通过相对路径

    2. 通过package:导入的包中的东西

    #2 很有趣。这可以包含您自己项目中的文件,您只需将这些文件放在lib 目录中并通过package:my_proj URI 访问它们。

    https://github.com/dart-lang/sample-pop_pop_win/为例

    另见https://www.dartlang.org/tools/pub/package-layout

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-14
      • 2018-11-18
      • 1970-01-01
      • 2023-03-03
      • 2018-02-03
      • 1970-01-01
      • 2015-03-21
      相关资源
      最近更新 更多