Сборка Dart2JS Pub не может правильно перемещаться по папкам проекта

Я работаю над долгосрочным проектом в течение некоторого времени. После перемещения некоторых папок, правильного рефакторинга различных частей кода анализатор 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.

Оператор импорта перемещает 2 папки вверх с помощью ../../, но Pub или Dart2JS не перемещаются на 2 папки вверх, а только на 1 папку вверх. Посмотрите еще раз на ошибку:

Can't read 'file:///Data/ownCloud/cybersecgame/CS%20Game%20Engine/web/UIElements/Data/Variables/Variable.dart'

Ищет файл не в том месте. Я не уверен, что делать, чтобы исправить это, и я огляделся и не могу ничего найти. Опять же, Dart Analyzer Webstorm не показывает проблем, но сборка паба или сервер паба терпят неудачу и не могут найти файл.

Я уже много раз использовал ../../ в своем коде, но это первый раз, когда он вызывает проблемы. Есть и другие ошибки, похожие на эту, но с той же проблемой неправильного чтения ../../.

Обновление 1:

Я провел дополнительное тестирование, и добавление дополнительного ../ в начало пути исправляет ошибку во время pub build. Однако теперь Webstorm и его Dart Analyzer показывают много ошибок, поскольку путь явно неверный (1 слишком много ../). Это обходной путь, но не исправление. Кто-нибудь знает, почему паб или Dart2JS неправильно считывают путь? Каким-то образом пропуская один из ../?


person Zzzach...    schedule 25.06.2017    source источник


Ответы (1)


Код в веб-каталоге должен обращаться к файлам только в двух местах:

  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< /а>

person Kevin Moore    schedule 28.06.2017