これは私の(単純化された)フォルダ構造です:
/
pubspec.yaml
build/
client.dart.js, etc
lib/
game.dart
server/
server.dart
web/
client.dart
canvas.dart
index.html
これらのファイルを提供するために、「dartiverse search」サンプルのコードを使用しています (簡略化)。
var buildDirectory = new Http.VirtualDirectory(buildPath);
buildDirectory.jailRoot = false;
// Serve everything not routed elsewhere through the virtual directory.
buildDirectory.serve(router.defaultStream);
// Special handling of client.dart. Running 'pub build' generates
// JavaScript files but does not copy the Dart files, which are
// needed for the Dartium browser.
router.serve("/client.dart").listen((request) {
Uri clientScript = Platform.script.resolve("../web/client.dart");
buildDirectory.serveFile(new File(clientScript.toFilePath()), request);
});
router.serve("/canvas.dart").listen((request) {
Uri clientScript = Platform.script.resolve("../web/canvas.dart");
buildDirectory.serveFile(new File(clientScript.toFilePath()), request);
});
router.serve("/lib/game.dart").listen((request) {
Uri clientScript = Platform.script.resolve("../lib/game.dart");
buildDirectory.serveFile(new File(clientScript.toFilePath()), request);
});
私の質問は、.dart ファイルが lib/ フォルダーと web/ フォルダーに分割されているプロジェクトでファイルを提供するためのより良い方法はありますか? 上記の方法はいくつかのファイルに対してはうまくいくかもしれませんが、プロジェクトが大きくなり、そのような .dart ファイルが 50 個ある場合はどうなるでしょうか?