Jak zorganizować mieszany serwer HTTP + klient WWW Pliki projektów Dart?

Planuję stworzyć czystą aplikację Dart, w której zarówno serwer HTTP, jak i strona klienta WWW są napisane w Dart. Wywodząc się z Java i Eclipse, najlepszym rozwiązaniem będzie to, że mogę otworzyć całą hierarchię projektu w Dart Editor i móc uruchomić serwer, który obsługuje pliki klienta i debugować obie strony aplikacji (serwer po stronie DartVM i po stronie klienta w Dartium ).

Uruchomiłem edytor rzutek i po utworzeniu prostej aplikacji wiersza poleceń jako podstawy strony serwera pomyliłem się z układem projektu.

Pliki kodowe po stronie serwera (klasa przechwytywania serwera WWW, klasa obsługi i klasy filtrów) zdecydowanie ograniczają się do folderu / folderu projektów. Zależności po stronie serwera przechodzą do pliku pubspec.yaml projektu.

Problem pojawia się, gdy serwer musi uzyskać dostęp do plików aplikacji klienta (pliki .dart, źródło strony statycznej itp.) W celu dostarczenia ich do przeglądarki. Najłatwiejszym rozwiązaniem byłoby utworzenie folderu sieciowego wewnątrz projektu serwera i umieszczenie tam plików WWW klienta, ale w ten sposób (o ile zrozumiałem) zależności po stronie serwera są dziedziczone po stronie klienta, ponieważ nadal jesteśmy w tym samym zakresie pubspec. Nie chcę tego.

Pomyślałem o utworzeniu biblioteki klienta w folderze lib / project i umieszczeniu tam plików internetowych, ale nie wiem, jak dobrą praktyką jest umieszczenie tam kompletnej aplikacji internetowej. Myślę, że muszę umieścić HTML i inne pliki statyczne klienta w zasobach / podfolderach biblioteki. Obawiam się, że w ten sposób tracę pomoc aplikacji internetowej z IDE.

To, co mogę również zrobić, to umieścić klienta w osobnym projekcie, zorganizować go jak projekt webappa Dart z jego własnym pubspec.yaml, a następnie uczynić to w jakiś sposób zależnością aplikacji serwera. Nie wiem, czy w ten sposób serwer może uzyskać dostęp do plików internetowych w innym projekcie do obsługi. Prawdopodobnie jest to najlepszy sposób na to, ponieważ zapewnia czyste rozdzielenie plików klienta i serwera.

Czy ktoś może mi oświecić, jaki jest właściwy sposób na to?

Jeszcze jedno wyjaśnienie. Powiedzmy, że korzystam z osobnego podejścia projektowego, jak inni już sugerują w odpowiedziach, ale nadal lubię uruchamiać serwer, który jest w stanie obsłużyć klienta w fazie rozwoju, bez żadnego wyszukanego hakowania. Serwermusi dostęp do plików klienta w innym projekcie. Nie ma znaczenia, czy jego Javascript czy Dart, i tak są tam pliki statyczne. A podczas rozwoju chcę obsługiwać pliki dart, ponieważ Dartium przyspiesza rozwój dzięki możliwości bezpośredniego uruchamiania Dart.

Dzięki Java i Maven mogę sprawić, że pakiet klienta będzie zależał od serwera w czasie wykonywania i będę mógł po prostu obsługiwać pliki klienta ze ścieżki klasy. Czy Dart obsługuje dostęp do wewnętrznych plików zależności od pubu w podobny sposób lub jedynym sposobem na to jest umieszczenie wszystkiego w folderze zasobów klienta lub przejście z włamaniem do ścieżki względnej?

questionAnswers(3)

yourAnswerToTheQuestion