目錄
簡介
Library package的結構
導入library
條件導入和導出library
添加其他有效的檔案
library的文檔
釋出到pub.dev
總結
在dart系統中,有pubspec.yaml檔案的應用就可以被成為一個package。而Libray package是一類特殊的package,這種包可以被其他的項目所依賴. 也就是通常所說的庫。
如果你也想你寫的dart程式可以上傳到pub.dev上,或者提供給别人使用,則來看看這篇文章吧。
先看下library package的結構:
這是一個最簡單的Library package的結構,在root目錄下面,我們有一個pubspce.yaml檔案。然後還有一個lib目錄存放的是library的代碼。
一般來說lib下面的庫是可以供外部進行引用的。如果是library内部的檔案,則可以放到lib/src目錄下面,這裡面的檔案表示是private的,是不應該被别的程式引入的。
如果想要将src中的包導出供外部使用,則可以在lib下面的dart檔案中使用export,将需要用到的lib導出。這樣其他使用者隻需要import這個一個檔案即可。
export的例子如下:
上面的代碼是flutter的animation庫。
怎麼使用呢?我們可以使用import語句來導入對應的lib:
如果是内部檔案的導入,則可以使用相對路徑。隻有在導入外部package的時候才需要加上package:字首。
因為dart是設計在可以在不同的平台上進行工作,是以一個library在不同的平台可能需要導入或者導出不同的library檔案, 這就叫做條件導入和導出。
比如可以通過判斷dart庫是io庫還是html庫來選擇導出不同的檔案:
上面的意思是,如果在app中能夠使用dart:io,那麼就導出src/hw_io.dart.
如果能夠使用dart:html,那麼就導出src/hw_html.dart,否則就導出src/hw_none.dart。
如果是條件導入的話,将export改成import即可。
因為不同的library有不同的作用,是以通常需要添加一些額外的檔案來保證library的有效性和完整性。
為了保證library的有效性,需要添加測試代碼,測試代碼通常放在test目錄中。
如果是建立指令行工具,則需要将對應的工具放到tools目錄中。
另外還有 README.md 和 CHANGELOG.md等檔案。
dart文檔可以使用 dartdoc這個工具來生成。dart中的文檔格式是以///開頭的,如下:
一個最好共享library的方式就是将其發送到pub.dev上。具體的指令是:pub publish。
以上就是dart中建立library的全部内容。
本文已收錄于 http://www.flydean.com/11-dart-create-package/ 最通俗的解讀,最深刻的幹貨,最簡潔的教程,衆多你不知道的小技巧等你來發現! 歡迎關注我的公衆号:「程式那些事」,懂技術,更懂你!