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

Posted

技术标签:

【中文标题】如何组织多包颤振项目并将其用作依赖项【英文标题】:How to organise multi package flutter project and use it as dependency 【发布时间】:2019-06-30 12:33:49 【问题描述】:

我想将一个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】:

只需将 Git 依赖项用于两种场景(本地和其他项目)。

如果在本地开发过程中觉得这很麻烦,请在本地使用 path fependencies 并在提交之前将其更改回 Git。

【讨论】:

以上是关于如何组织多包颤振项目并将其用作依赖项的主要内容,如果未能解决你的问题,请参考以下文章

如何运行具有不同/较旧的 Dart SDK 依赖项的颤振项目?

无法在颤振中同步 build.gradle 中的依赖项

无法使用 PathProvider 依赖项构建颤振项目

如何清除颤振项目缓存?

在颤振中添加依赖项时出错

创建一个包含所有颤振库和依赖项的 aar