簡體   English   中英

dart中的lib / src和/ bin有什么區別?

[英]What is the difference between lib/src and /bin in dart?

我知道lib /是存放所有庫文件的位置,/ bin是存放命令行應用程序入口點的位置。 我知道它們都是公共lib /和bin,但我無法理解使用lib / src的約定,根據官方文檔,該約定應包含: 實現代碼

lib/是包含可共享代碼的目錄。 可以共享

  • 到同一包中的其他頂級目錄,如bin/web/example/test/tool/ ,...
  • 到其他依賴於此軟件包的軟件包。

按照慣例, lib/src包含由lib/lib/xxx公開的公共API的私有實現,其中xxx不是src

bin是為命令行應用程序保留的,包含執行它們的Dart入口點腳本(包含main() {...} )。

pubspec.yaml您可以定義可執行文件https://www.dartlang.org/tools/pub/pubspec#executables ,該文件使您可以通過執行foo來執行dart somePath/bin/foo.dart ,從而從bin/運行腳本(使用pub global activate my_package_with_foo )。

請參見發布包布局約定-實施文件

lib內部的lib是公開可見的:其他軟件包可以自由導入。 但是,軟件包的大部分代碼是內部實現庫,僅應由軟件包本身導入和使用。 它們位於lib的子目錄src 如果可以幫助您組織事物,則可以在其中創建子目錄。

您可以從同一個程序包中的其他Dart代碼中導入位於lib/src中的庫(就像lib其他庫, bin和測試中的腳本一樣),但是絕對不要從另一個包的lib/src目錄中導入。 這些文件不是軟件包公共API的一部分,它們可能會以破壞代碼的方式進行更改。

當您從自己的程序包中使用庫時,即使是src代碼,也可以(並且應該)仍然使用package:來導入它們。

暫無
暫無

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

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