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