[英]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.