Я планирую создать чистую программу Dart, где и HTTP-сервер, и веб-клиентская часть написаны в Dart. Исходя из Java и Eclipse, конечный результат заключается в том, что я могу открыть всю иерархию проектов в Dart Editor и иметь возможность запускать сервер, который обслуживает клиентские файлы, и отлаживать обе стороны приложения (серверная сторона с DartVM и клиентской стороной с Dartium).
Я запустил редактор Dart Editor и после создания простого приложения командной строки в качестве основы для серверной части я запутался с макетом проекта.
Файлы исходного кода на стороне сервера (класс буфера расширения веб-сервера, классы обработчиков и фильтров), безусловно, входят в файлы bin/folder. Зависимости на стороне сервера входят в файл проекта pubspec.yaml.
Проблема возникает, когда серверу приходится обращаться к файлам клиентских приложений (файлы .dart, статический источник страниц и т.д.), чтобы обслуживать их в браузере. Самым простым решением было бы создать веб-папку внутри проекта сервера и разместить там клиентские веб файлы, но этот способ (насколько я понял) зависимостей на стороне сервера наследуется в клиенте, потому что мы все еще находимся в том же диапазоне pubspec. Я не хочу этого.
Я думал о создании клиентской библиотеки в папке lib/folder и размещал там веб файлы, но я не знаю, как хорошая практика заключается в том, чтобы разместить там полное веб-приложение. Думаю, я должен поместить HTML и другие клиентские статические файлы в папку /lib/lib. Я боюсь, что я потеряю поддержку веб-приложений из IDE таким образом.
То, что я могу также сделать, - это поместить клиента в отдельный проект, организовать его, как проект веб-сайта Dart, с ним очень собственный pubspec.yaml, а затем каким-то образом сделать это зависимостью серверного приложения. Я не знаю, мог ли этот способ получить доступ к веб файлам в другом проекте для обслуживания. Вероятно, это лучший способ сделать это, потому что он обеспечивает чистое разделение файлов клиента и сервера.
Может кто-нибудь просветить меня, какой правильный способ сделать это?
Еще несколько объяснений. Скажем, я собираюсь использовать отдельный подход к проекту, поскольку другие уже предлагают в ответах, но мне все же нравится запускать сервер, который способен обслуживать клиента на этапе разработки без какого-либо причудливого взлома. Сервер должен обращаться к файлам клиента в другом проекте. Не имеет значения, есть ли его Javascript или Dart, статические файлы. И во время разработки я хочу обслуживать файлы дротиков, так как Dartium ускоряет разработку с его непосредственной возможностью запуска Dart значительно.
С Java и Maven я могу сделать клиентский пакет зависимым от времени выполнения сервера, и я могу просто обслуживать клиентские файлы из пути к классам. Поддерживает ли Дарт доступ к внутренним файлам зависимостей паба аналогичным образом или единственный способ для этого - поместить все в папку с ресурсами клиента или идти с относительным хаком пути?