1

在阅读了https://www.dartlang.org/articles/web-ui/tools.html上的文章后,我尝试按照它来编译我的应用程序。

我存储在 web/app.html 中的应用程序可以通过使用“Run as 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 的正确命令行是什么?

4

1 回答 1

0

该问题与“--no-rewrite-urls”选项和--out 选项中的绝对路径有关。如果我删除“--no-rewrite-urls”选项并将相对路径放入--out 选项,dart2js 编译成功完成。

于 2013-07-13T12:14:58.493 回答