我有這樣的設置:是通過導入調用腳本飛鏢腳本
├── bin
│ ├── all.dart
│ ├── details
│ │ ├── script1.dart
│ │ └── script2.dart
| | .....
all.dart只是進口script1.dart和script2.dart,並呼籲他們主要。我們的目標是在的細節下有一堆腳本,可以單獨運行。此外,我想要一個單獨的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但我有兩個問題。
首先,我要軟鏈接包根據的細節。顯然,pub不會將軟鏈接傳播到子文件夾。這是預期還是有解決方法?
其次,all.dart在第二個導入語句的位置標記了錯誤。該分析儀的錯誤是:
The imported libraries 'script1.dart' and 'script2.dart' should not have the same name ''
所以我的猜測是因爲我導入其他腳本,就好像他們是圖書館,因爲它們不具備庫腳本[12];頂部的聲明他們都有相同的名字 - 空的名字?
注:我本來所有這些下的lib,我可以運行這些腳本作爲,即使他們與庫主的命令行上指定一個合適的--package根。但後來調試我需要在Dart Editor中運行,這就是爲什麼我要將它們移動到bin。也許編輯應該允許lib下的庫和主作爲腳本運行,因爲它們在編輯器外運行很好?腳本/庫之間的實際差異似乎有點不必要(因爲其他腳本語言允許文件都是)。
如何清理?
如何清理警告和沒有softlink? 第三點是腳本和lib之間真正區別的問題。爲什麼有一個關於圖書館的主要問題,但是對於主要(而且通過包裝佈局約定而不是圖書館)需要頂部的圖書館聲明來擺脫警告的腳本沒有疑慮? 不確定編輯器如何確定它是否可以運行;但一種解決方案是編輯器檢查* main *,如果存在則運行*'dart --package-root'*設置爲包的包文件夾。那麼沒有軟鏈接需要*和*任何東西是主(甚至一個庫)也可以作爲腳本運行。 – user1338952 2014-10-02 10:53:24
我不知道'lib',但除此之外,您應該可以爲腳本創建啓動配置並添加自定義參數,如'--package-root'。有點麻煩,因爲你需要每個文件的配置。標準化AFAIK需要唯一的庫名稱。 – 2014-10-02 10:57:09
不,太多了。我將堅持使用腳本(庫)的內部命名和現在做softlink,因爲它沒有分析警告。 – user1338952 2014-10-02 11:05:12