2013-03-30 21 views
2

當我在Dart編輯器的Dart項目中創建子文件夾時,立即在此子文件夾內創建包子文件夾。我沒有閱讀過子文件夾對項目結構有特殊意義的任何地方,但看起來他們確實如此。任何人都知道更多?文件夾在dart項目中有什麼相關性?

回答

5

包子文件夾包含符號鏈接到您的Pub包。您可以在http://pub.dartlang.org/doc/閱讀更多關於酒吧和酒吧包的信息。

當你啓動一個非web項目時,編輯器會自動在bin /和test /目錄(但不在你的lib目錄下)創建包目錄。如果您創建了一個Web項目,還會在該Web /文件夾中創建一個包目錄。

如果您在pubspec.yaml文件中添加Pub依賴項並運行pub install,您將會看到包文件夾將包含到剛安裝的Pub包的符號鏈接。如果您正在使用Dart Editor,則修改您的pubspec,yaml文件後,pub install將自動運行。

如果您在包含這些自動生成的包文件夾之一的任何目錄內創建子文件夾,則該子文件夾將獲得其自己的包目錄。這樣,無論您將代碼嵌入目錄中的程度如何,您都可以訪問Pub包。

+0

謝謝你的解釋!來自C++,C#,Python,Javascript編程,我必須習慣於在每個子文件夾中一次又一次地看到引用的包,但是我可能會得到這個層次結構的優勢。將挖掘更多的文件。 thx – citykid

5

Shailen的回答是正確的。我想補充一點,因爲這個問題的標題是「Dart項目中文件夾的相關性?」

Dart的設計非常友好。因爲Web上沒有加載路徑或類路徑,所以Dart應用程序必須運行而不需要安裝或預配置本地環境。

您可以在Dart中將一個文件鏈接到另一個文件的唯一方法是通過URI。這些URI可以是文件URI,它們可以是相對的。這意味着文件A.dart可以通過絕對路徑或相對路徑指向文件B.dart。

因此,要回答您的問題,Dart應用程序的文件夾佈局沒有什麼特別之處。只要您的Dart文件可以通過網絡上存在的相同類型的鏈接規則引用其依賴關係,該應用就會運行(請考慮<a href="" or <link src="")。

但是,pub(Dart依賴管理器)確實對包和應用程序佈局做了一些假設。如果遵循某些約定,pub可以爲您管理符號鏈接,以便更容易引用第三方依賴關係。你需要使用酒吧嗎?不,您可以手動複製文件或手動管理符號鏈接。但是,考慮到Dart的設計(沒有加載路徑,沒有類路徑)的限制,酒吧肯定會使包更容易使用。

+0

此外,thnx爲這個偉大的解釋。你能完成最後一個段落嗎(「......(想想」嗎? – joan

+0

糟糕,對不起:) –

相關問題