【发布时间】:2013-03-21 04:47:18
【问题描述】:
当我在 Dart 编辑器的 Dart 项目中创建子文件夹时,会立即在此子文件夹中创建一个包子文件夹。我没有在任何地方读到子文件夹对项目结构有特殊含义,但似乎确实如此。有人知道吗?
【问题讨论】:
标签: dart dart-editor dart-pub
当我在 Dart 编辑器的 Dart 项目中创建子文件夹时,会立即在此子文件夹中创建一个包子文件夹。我没有在任何地方读到子文件夹对项目结构有特殊含义,但似乎确实如此。有人知道吗?
【问题讨论】:
标签: dart dart-editor dart-pub
包子文件夹包含指向您的 Pub 包的符号链接。您可以在http://pub.dartlang.org/doc/ 阅读有关 Pub 和 Pub 包的更多信息。
当你启动一个非 web 项目时,编辑器会自动在你的 bin/ 和 test/ 目录中创建包目录(但不在你的 lib/ 目录中)。如果创建 web 项目,还会在 web/ 文件夹中创建一个包目录。
如果您在 pubspec.yaml 文件中添加 Pub 依赖项并运行 pub install,您将看到包文件夹将包含指向您刚刚安装的 Pub 包的符号链接。如果您使用的是 Dart 编辑器,pub install 将在您修改 pubspec,yaml 文件后自动运行。
如果您在包含这些自动生成的包文件夹之一的任何目录中创建子文件夹,则该子文件夹将获得自己的包目录。这样,无论您将代码嵌套在目录中的深度如何,您都可以访问您的 Pub 包。
【讨论】:
Shailen 的回答是正确的。我想补充一点,因为这个问题的标题是“Dart 项目中与文件夹有什么相关性?”
Dart 被设计成对网络非常友好。由于 Web 上没有加载路径或类路径,Dart 应用程序必须在不需要安装或预配置本地环境的情况下运行。
在 Dart 中将一个文件链接到另一个文件的唯一方法是通过 URI。这些 URI 可以是文件 URI,也可以是相对的。这意味着文件 A.dart 可以通过绝对或相对路径指向文件 B.dart。
所以,回答您的问题,Dart 应用程序的文件夹布局没有什么特别之处。只要您的 Dart 文件可以通过网络上存在的相同类型的链接规则引用其依赖项,该应用程序就会运行(想想<a href="" or <link src="")。
但是,pub(Dart 依赖管理器)确实对包和应用程序布局做了一些假设。如果遵循某些约定,pub 可以为您管理符号链接,以便更容易引用 3rd 方依赖项。你需要使用酒吧吗?不,您可以手动复制文件或手动管理符号链接。但是考虑到 Dart 设计的限制(没有加载路径,没有类路径),pub 确实让使用包变得更容易。
【讨论】: