2

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

4

2 回答 2

5

package 子文件夹包含指向您的 Pub 包的符号链接。您可以在http://pub.dartlang.org/doc/阅读有关 Pub 和 Pub 包的更多信息。

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

如果您在 pubspec.yaml 文件中添加 Pub 依赖项并运行pub install,您将看到包文件夹将包含指向您刚刚安装的 Pub 包的符号链接。如果你使用的是 Dart Editor,pub install一旦你修改了你的 pubspec,yaml 文件,它将自动运行。

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

于 2013-03-30T17:58:44.253 回答
5

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

Dart 被设计成对网络非常友好。因为 web 上没有加载路径或类路径,所以 Dart 应用程序必须在不需要安装或预配置本地环境的情况下运行。

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

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

However, pub (the Dart dependency manager) does make a few assumptions about package and application layout. If certain conventions are followed, pub can manage symlinks for you so that it's easier to reference 3rd party dependencies. Do you need to use pub? Nope, you can manually copy files around or manually manage symlinks. But pub certainly does make it easier to use packages, given the constraints of Dart's design (no load path, no classpath).

于 2013-03-31T03:50:05.793 回答