假设有一个需要有一个项目有3个库和2个应用程序.从pub文档中我选择了如下所示的结构.但是,应用程序的不同之处在于,他们希望自己拥有自己的目录.(http://pub.dartlang.org/doc/#adding-a-dependency)上的文档说明将pubspec.yaml文件放在顶层.是项目文件夹下面的上下文中的顶级?
如果有一个pubspec并且它位于/ project级别并与lib共享,那么这不意味着任何lib的用户而不是应用程序会不必要地需要额外的包(比如good_stuff和big_stuff)吗?
/project
/app
/app1 (uses l1, package:good_stuff)
/app2 (uses l1, l2, l3, package:big_stuff)
/lib
/l1
/l2 (uses package:pathos/path.dart)
/l3 (uses l1 and l2)
/src
/l1
/l2
/l3
Run Code Online (Sandbox Code Playgroud)
因此,给定这个期望的设置,将创建多少pubspec以及将在何处创建以满足这些依赖性.
您应该将pubspec.yaml文件放在包的顶层.在Pub中,包是自包含代码的最大单元,包含包所需的所有库,可执行文件,示例,文档,测试和工具.
在Pub中,有两种类型的软件包:
这些是松散的定义,因为库包可能具有可执行文件,而应用程序包可能具有一些在其他应用程序中有用的可重用库.
通常,您希望尝试使用多个分立组件来创建项目,这些组件可以更改并单独重复使用.这与为应用程序的所有部分制作一个包相反.
我建议你有以下结构:
/project
/app1
- pubspec.yaml
/app2
- pubspec.yaml
/mechanics
- pubspec.yaml
/lib
l1.dart
l2.dart
l3.dart
/src
...
Run Code Online (Sandbox Code Playgroud)
这里有2个应用程序包和一个库包.
几点说明:
您可以参考mechanics具有路径依赖性的包
project/如果您期望将整个项目捆绑在一起(比如您是否正在销售它),那么您真的只想要成为顶级顶级.如果您预期app1和app2分开居住,您根本不需要project/.
你可以完全制作l1,l2和l3他们自己的包,如果你觉得他们可以分开生活.在这种情况下,只需将它们全部打包.
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |