【发布时间】:2014-11-27 00:38:36
【问题描述】:
我有这个设置:
├── bin
│ ├── all.dart
│ ├── details
│ │ ├── script1.dart
│ │ └── script2.dart
| | .....
all.dart 只需导入 script1.dart 和 script2.dart 并调用它们的 main。目标是在 details 下有一堆可以单独运行的脚本。此外,我想要一个单独的 all.dart 脚本,可以一次运行它们。这将使调试单个脚本更简单,但仍然允许所有脚本运行。
all.dart
import 'details/script1.dart' as script1;
import 'details/script2.dart' as script2;
main() {
script1.main();
script2.main();
}
script1.dart
main() => print('script1 run');
script2.dart
main() => print('script2 run');
所以,这是有效的,我在运行 all.dart 时看到了预期的打印语句,但我有两个问题。
首先,我必须在 details 下软链接 packages。显然 pub 不会将软件包软链接传播到子文件夹。这是预期的还是有解决方法?
其次,在第二个 import 语句的位置 all.dart 中标记了错误。分析仪错误是:
The imported libraries 'script1.dart' and 'script2.dart' should not have the same name ''
所以我的猜测是因为我正在导入其他脚本,就好像它们是库一样,并且因为它们没有 library script[12]; 语句在顶部,它们都具有相同的名称 -空名?
注意: 最初我在 lib 下拥有所有这些,我可以将它们作为脚本运行,指定合适的 --package-root命令行,即使它们是带有 main 的库。但是为了调试,我需要在 Dart 编辑器中运行,这就是我将它们移动到 bin 的原因。也许编辑器应该允许 lib 下带有 main 的库作为脚本运行,因为它们在编辑器之外运行就可以了?脚本/库之间的实际差异似乎有点不必要(因为其他脚本语言允许文件两者兼有)。
我该如何清理?
【问题讨论】:
标签: dart