如何在另一个Flutter应用程序中使用本地Flutter包?


75

如何在另一个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

1
我也有同样的麻烦 尽管应用程序已运行,但出现错误“ URI不存在”。我执行了“ flutter package get”,但是结果是一样的。
amenbo

Answers:


108

在flutter应用程序中找到此文件=> pubspec.yaml

建立本地依赖

dependencies:
   flutter:
     sdk: flutter
   my_new_package:
     path: ./my_new_package

43
警告:这里有一个陷阱,我要提醒人们注意。不要在flutter根目录中创建一个名为的文件夹packages,并将软件包放在其中。packages文件夹在构建中被删除。
TheGwa

@TheGwa您在哪里使用packages目录看到此答案的作者?我假设您只是将软件包与测试项目放在同一级别,而不是测试项目中的软件包。
SacWebDeveloper

@SacWebDeveloper以上答案正确无误。我的评论只是一个警告。如果你有项目特定的软件包,天真的办法是把它们放在一个/packages目录在你的项目的根在同一水平/android/ios/tests等在写作时/packages生成过程中被覆盖,并将核弹攻击你的包。一段时间没有测试。
TheGwa

1
官方文档链接在此处,用于软件包和插件。
Tokenyet

3
@TheGwa哦。那是有用的信息。谢谢。也许称其为“喜欢”plugins或将其添加到lib/packages?也许社区应该提出一个约定。
SacWebDeveloper

15

路径依赖性:Flutter应用程序可以通过文件系统path:依赖性来依赖插件。路径可以是相对路径,也可以是绝对路径。例如,要依赖位于应用程序旁边目录中的插件plugin1,请使用以下语法:

dependencies:
  plugin1:
    path: ../your_package/

5

对于整个过程:

  1. 下载您要使用的插件的代码,并将其置于与flutter项目目录相同的级别

     -- plugin-name  
     -- your flutter directory -- lib
                               -- android
                               -- ios etc etc
    
  2. 将插件路径添加到pubspec.yaml。*如果不确定使用正确的插件名称,请查看name:插件的pubspec.yaml文件中的属性。插件目录也必须使用相同的名称保存name:

    dependencies:
     plugin-name:
       path: ../plugin-name
    
  3. 运行Pub get,您可以像导入其他任何插件一样导入。唯一的区别是,在开发过程中单击任何插件类时,它将指向本地文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.