Flutter 如何导入位于另一个本地目录中的包
问题描述
我正在开发一个Flutter项目,我需要将一个名为”mbcl”的包导入到我的项目中。该包的pubspec.yaml文件位于路径~/lib/mbcl/pubspec.yaml,而我的项目的pubspec.yaml文件位于~/app/pubspec.yaml。
我不确定如何将这个外部包包含到我的Flutter项目中。请问有人可以指导我如何正确导入”mbcl”包,同时保持我的项目有序和高效吗?非常感谢任何帮助。
以下是我尝试添加到项目的pubspec.yaml中的内容,
dependencies:
...
mbcl:
path: lib/mbcl/
我本来期望这个应该可以工作的,因为mbcl位于与应用程序相邻的目录中。 这是我的目录结构,
项目目录mathebuddy的内容
mathebuddy
│
├── app
│ │
│ ├─ pubspec.yaml(1)
│
├── lib
│ │
│ ├─ mbcl
│ │
│ ├─pubspec.yaml(2)
解决方案
你离成功就差一点了。不过还有一件小事:
相对路径是允许的,并且被视为相对于包含你的pubspec文件的目录。参考链接:https://dart.dev/tools/pub/dependencies#path-packages
你的参考点是你的应用的pubspec.yaml
文件。所以对于mbcl
包来说,相对路径应该是../lib/mbcl
,像这样:
dependencies:
mbcl:
path: ../lib/mbcl