После прочтения статьи, найденной по адресу https://www.dartlang.org/articles/web-ui/tools.html#editor-background-compilation я попытался скомпилировать свое приложение, следуя ему.
Мое приложение, хранящееся в web/app.html, может быть успешно скомпилировано в Javascript в DartEditor с помощью команды «Запустить как Javascript».
Когда я пытаюсь использовать следующие командные строки для компиляции для развертывания в рабочей среде, я сталкиваюсь с проблемой нескопированного файла части пакета.
$ dart --package-root=packages/ packages/web_ui/dwc.dart --out /tmp/dart/ --no-rewrite-urls web/app.html
$ ls lib/app/
model_browser.dart model_server.dart
$ ls lib/app/src/model/
model_browser.dart model_server.dart model_shared.dart
$ cd /tmp/dart
$ dart2js -v app.html_bootstrap.dart --package-root=packages/ -oapp.html_bootstrap.dart.js
...
info: scanning library file:///private/tmp/dart/_from_packages/bm/model_browser.dart
_from_packages/app/model_browser.dart:12:1: Error: Cannot read "_from_packages/app/src/model/model_shared.dart" (OS Error: No such file or directory, errno = 2).
part 'src/model/model_shared.dart';
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
info: Error: compiler cancelled: Error: Cannot read "_from_packages/app/src/model/model_shared.dart" (OS Error: No such file or directory, errno = 2).
...
$ ls _from_packages/app/
model_browser.dart model_browser.dart.map
$ ls _from_packages/app/src/model/
model_browser.dart model_browser.dart.map
На самом деле файл «model_shared.dart» не копируется в /tmp/dart/_from_packages/app/src/model/model_shared.dart. Содержимое model_browser.dart следующее:
library model;
import 'dart:json' as json;
import 'package:bm/i18n.dart' as i18n;
import 'package:logging/logging.dart';
import 'package:web_ui/web_ui.dart';
part 'src/model/model_shared.dart';
part 'src/model/model_browser.dart';
DartEditor может запустить мое приложение как Javascript. Какова правильная командная строка для запуска dart2js, чтобы учитывать операторы «части» моей библиотеки «модели»?