如何在另一个Flutter应用程序中使用本地Flutter包?
我使用以下命令创建了一个包:
flutter create --template=package my_new_package
然后在我的应用程序源代码中 => main.dart
import "package:my_new_package/my_new_package.dart" // can not find the package
如何在另一个Flutter应用程序中使用本地Flutter包?
我使用以下命令创建了一个包:
flutter create --template=package my_new_package
然后在我的应用程序源代码中 => main.dart
import "package:my_new_package/my_new_package.dart" // can not find the package
在你的Flutter应用程序中找到此文件 => pubspec.yaml
使用本地依赖
dependencies:
flutter:
sdk: flutter
my_new_package:
path: ./my_new_package
注意: 上面的./my_new_package
表示包含pubspec.yaml
的my_new_package
目录是应用程序的子目录。
如果您将软件包作为与应用程序相同级别的目录,换句话说,在目录树中更高的一个级别,您可以使用../my_new_package
(注意双点)或软件包目录的完整路径。packages
的文件夹并将软件包放在其中。构建时会删除packages
文件夹。 - TheGwa/packages
目录下,该目录位于你的项目根目录,与 /android
、/ios
、/tests
等目录处于同一级别。在撰写本文时,/packages
目录在构建过程中被覆盖,并会清除你的包。已经有一段时间没有测试过了。 - TheGwa/packages
,而官方文档中也没有提及将文件放在该名称目录中存在任何限制。我认为警告已经不再适用了。 - Rob路径依赖:Flutter 应用程序可以通过文件系统路径(dependency)依赖于插件。路径可以是相对的或绝对的。例如,要依赖于位于与应用程序相邻目录中的插件 plugin1,请使用以下语法:
dependencies:
plugin1:
path: ../your_package/
-- 插件名称
-- 你的Flutter目录 -- lib
-- android
-- ios 等等
name:
属性。插件目录也必须使用相同的name:
保存dependencies:
插件名称:
path: ../插件名称
Pub get
,然后你可以像导入其他插件一样导入它。唯一的区别是,在开发过程中,当你点击任何插件类时,它将指向本地文件。嘿,我在开始使用flutter之后也遇到了同样的问题。我在我的应用程序中实现了pdf_view
插件的示例,以便将其更改为闪烁效果而不是CircularProgressIndicator()
。
一些知识
您可以编辑通过
flutter pub get
获取的插件,但当您使用flutter创建应用程序包时,它们可能会被替换。
现在来看一个样本插件,假设以advance_pdf_viewer
为例:
下载zip文件并将其提取到pdf_viewer/
中。
确保pdf_viewer/
具有包括lib
、Android
、iOS
和所有相关文件在内的所有文件。
将您的pdf_viewer
文件夹复制到项目目录中,例如,我的项目为invoice_viewer
,因此其根目录具有所有文件夹,例如lib
、Android、iOS
等,在其中复制它以及lib
、Android
、iOS
。
现在打开您的pubsec.yaml
文件并编写如下代码:
dependencies:
flutter:
sdk: flutter
# advance_pdf_viewer: ^2.0.0
advance_pdf_viewer:
path: ./pdf_viewer
viewer.dart
文件以实现所需的更改。希望您和其他人从这个发现中获得一些信息!