如何组织多包Flutter项目并将其用作依赖项

时间:2019-02-06 14:11:20

标签: module dart flutter dart-pub flutter-dependencies

我想将一个flutter项目组织成一个具有以下要求的多包项目:

  • 为此项目使用一个存储库
  • 开发人员可以在本地处理此存储库中的软件包
  • 使软件包可作为该存储库之外其他项目的依赖项来访问

我现在拥有的存储库的文件设置为:

.
├── app_base
│   ├── ...
│   └── pubspec.yaml
├── feature
│   ├── ...
│   └── pubspec.yaml
└── README.md

我尝试在app_base/pubspec.yaml中使用这样的路径依赖项:

name: app_base

dependencies:
  feature:
    path: ../feature

它适用于本地开发,但是如果我尝试在完全不同的项目中使用app_base,而不是使用路径,而是使用git依赖项:

name: actual_app

dependencies:
  app_base:
    git:
      url: ssh://address.to/the_repo.git
      path: app_base
      ref: deadbaca

它无法解决可传递的feature依赖性:

Running "flutter packages get" in actual_app...            
Error on line 21, column 11: Invalid description: "../feature" is a relative path, but this isn't a local pubspec.
    path: ../feature
          ^^^^^^^^^^

pub get failed (65)
Process finished with exit code 65

有没有办法使它既可以用于本地开发,又可以用作其他项目的git依赖项?

1 个答案:

答案 0 :(得分:0)

仅在两种情况下(本地和其他项目)都使用Git依赖项。

如果您认为这在本地开发过程中很麻烦,请在本地使用路径特性,然后在提交之前将其更改回Git。