簡體   English   中英

飛鏢包布局

[英]Dart package layout

我剛剛閱讀了Dart建議的packagout布局規范,並提出了一些問題:

  1. 規范說我應該將所有第三方包放入lib目錄。 但是運行pub getpub upgrade會將這些包提取到packages目錄中。 那是哪個?!? 我應該運行pub get ,將包下拉到packages ,然后手動將它們復制到lib 這似乎效率低下!
  2. 規范說應該是API的一部分的包應該放在lib ,但是內部包(不是API的一部分)應該放在lib/src 因此,如果我的項目依賴於一些名為transmogrify第三方軟件包,我怎么知道哪些transmogrify軟件包是公共API的一部分,應該放在lib ,哪些是“私有的”,應該放在lib/src 這看起來很乏味!
  3. Dart應用程序可以有2個以上的main()方法嗎? 為什么/為什么不呢?
  4. 只是想確認應該將以下文件簽入VCS:
    • packages/**
    • build/** (由pub build
    • pubspec.lock
    • 還有其他人?
  1. 當您運行pub-get時,它會將所有必需的包拉入您的packages目錄。 保持結構不變。
  2. 我的建議是在Dart編輯器中打開pubspec.yaml文件時使用“添加包”中可以找到的包名。
  3. 編號main()是程序入口點。 所以一個程序,一個條目。
  4. 這幾乎是你列出的。 添加一個:.buildlog。

1)您不將第三方軟件包放入lib目錄。

如果要構建可重用的庫包,請將構建庫的文件放在lib目錄中。

第三方包僅在pubspec.yaml文件的dependenciesdev_dependencies部分中pubspec.yaml 其余的由pub維護。

2)應部分回答1)。 您將庫包的公共表面放入lib中。 不應作為公共API公開的庫內部可以/應該進入lib子目錄。

3)我認為這取決於你如何指定Dart應用程序。 Dart包當然可以有幾個主要功能。 您不能在web目錄中有更多的條目頁面,每個條目都有一個main。

你可以在bin,test,example中有更多的Dart腳本文件,其中每個文件都有一個main。

您可以通過在瀏覽器中打開一個入口頁面或使用dart myscript.dart運行腳本文件來啟動應用程序,這樣就可以明確定義調用的內容。

4)

我不知何故給你的印象是你混淆了庫和包的概念。 只是為了澄清:你可以在包裝里面放置多個庫。 如果要使用它們,您可以(或必須)單獨導入包的各個庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM