文件夹与飞镖项目有什么关联?

时间:2013-03-30 16:43:18

标签: dart dart-editor dart-pub

当我在Dart编辑器中的Dart项目中创建子文件夹时,会立即在此子文件夹中创建一个包子文件夹。我没有读过子文件夹对项目结构有特殊含义的任何地方,但看起来它们确实如此。有谁知道更多?

2 个答案:

答案 0 :(得分:5)

包子文件夹包含符号链接到您的Pub包。您可以在http://pub.dartlang.org/doc/了解有关Pub和Pub软件包的更多信息。

当您启动非Web项目时,编辑器将自动在bin /和test /目录中创建包目录(但不在lib /目录中)。如果创建Web项目,还会在Web /文件夹中创建包目录。

如果在pubspec.yaml文件中添加Pub依赖项并运行pub install,您将看到包文件夹将包含刚刚安装的Pub包的符号链接。如果您使用Dart编辑器,则在修改pubspec,yaml文件后,pub install将自动运行。

如果在包含这些自动生成的包文件夹之一的任何目录中创建子文件夹,则子文件夹将获得其自己的包目录。这样,无论您将代码嵌套在目录中的深度如何,都可以访问Pub包。

答案 1 :(得分:5)

Shailen的回答是正确的。我想补充一点,因为这个问题的标题是" Dart项目中文件夹有什么相关性?"

Dart的设计非常适合网络使用。由于Web上没有加载路径或类路径,因此必须运行Dart应用程序而无需安装或预配置本地环境。

在Dart中将一个文件链接到另一个文件的唯一方法是通过URI。这些URI可以是文件URI,也可以是相对的。这意味着文件A.dart可以通过绝对路径或相对路径指向文件B.dart。

因此,为了回答您的问题,Dart应用程序的文件夹布局没有什么特别之处。只要您的Dart文件可以通过Web上存在的相同类型的链接规则引用其依赖项,该应用程序就会运行(想想<a href="" or <link src="")。

但是,pub(Dart依赖管理器)确实对包和应用程序布局做了一些假设。如果遵循某些约定,pub可以为您管理符号链接,以便更容易引用第三方依赖项。你需要使用酒吧吗?不,您可以手动复制文件或手动管理符号链接。但考虑到Dart设计的限制(没有加载路径,没有类路径),pub肯定会使包更容易使用。