在多个 flutter 项目中使用模型和公共文件有推荐的方法吗?
Is there a recommended way to use models and common files in multiple flutter projects?
我有两个 flutter 项目,一个是管理应用程序,另一个是用户应用程序。两个应用程序都使用许多相同的模型和 类,以及通用的小部件。
目前我正在将模型 类 和小部件复制到两个项目中,当我需要更改任何内容时,我需要记得在另一个项目中也进行更改。
还有其他方法吗?
我应该创建一个自定义包并将其导入两个项目吗?
推荐的方法是什么?
传统的方法是将您的公共代码放在一个单独的 Dart 包中(即一个单独的目录,它有自己的 pubspec.yaml
文件和 its source files in a lib
subdirectory)。除非你希望你的包是public,否则没有必要将你的包发布到pub.dev。
然后您的其他项目可以将该包作为依赖项添加到它们的 pubspec.yaml
文件中。对于未托管在 pub.dev 上的包,您可能需要指定包的本地文件系统路径或指定 URL 到您自己的 Git 服务器。有关详细信息,请参阅 the Package Dependencies documentation。
其他方法(我不推荐,但为了完整性我提到了):
- 让您的项目仅通过相对路径导入常见的
.dart
文件。但是,向上导航多个父目录非常难看。
- 在项目的源目录中,添加引用公共代码的符号链接。然后您可以通过相对路径导入普通文件,而无需向上导航父目录。
- 如果您使用单独的源代码控制存储库而不是 mono-repo,您可以使每个项目使用公共代码作为 Git 子模块。与上述两种方法不同,这将允许您的不同项目使用独立的版本(另一方面是灵活性需要更多的维护工作)。
我有两个 flutter 项目,一个是管理应用程序,另一个是用户应用程序。两个应用程序都使用许多相同的模型和 类,以及通用的小部件。
目前我正在将模型 类 和小部件复制到两个项目中,当我需要更改任何内容时,我需要记得在另一个项目中也进行更改。
还有其他方法吗? 我应该创建一个自定义包并将其导入两个项目吗? 推荐的方法是什么?
传统的方法是将您的公共代码放在一个单独的 Dart 包中(即一个单独的目录,它有自己的 pubspec.yaml
文件和 its source files in a lib
subdirectory)。除非你希望你的包是public,否则没有必要将你的包发布到pub.dev。
然后您的其他项目可以将该包作为依赖项添加到它们的 pubspec.yaml
文件中。对于未托管在 pub.dev 上的包,您可能需要指定包的本地文件系统路径或指定 URL 到您自己的 Git 服务器。有关详细信息,请参阅 the Package Dependencies documentation。
其他方法(我不推荐,但为了完整性我提到了):
- 让您的项目仅通过相对路径导入常见的
.dart
文件。但是,向上导航多个父目录非常难看。 - 在项目的源目录中,添加引用公共代码的符号链接。然后您可以通过相对路径导入普通文件,而无需向上导航父目录。
- 如果您使用单独的源代码控制存储库而不是 mono-repo,您可以使每个项目使用公共代码作为 Git 子模块。与上述两种方法不同,这将允许您的不同项目使用独立的版本(另一方面是灵活性需要更多的维护工作)。