如何将示例项目添加到 Flutter 包中?
Posted
技术标签:
【中文标题】如何将示例项目添加到 Flutter 包中?【英文标题】:How do I add an Example Project to a Flutter Package? 【发布时间】:2019-10-23 16:10:07 【问题描述】:有没有办法为包中的示例地图结构自动生成模板代码?
大多数包在包根目录中都有一个 /example 文件夹,用于展示包的功能。 我不确定创建示例的“最佳”方式是什么,或者它是否重要。
我是否单独创建所有文件? 我是否要创建一个新项目,然后将其复制到包根目录? 我可以直接在项目中自动生成示例项目吗?
这是我第一次尝试创建一个包,我希望第一次就做好。
【问题讨论】:
【参考方案1】:在项目的根目录中创建一个名为 example 的新项目,然后删除不必要的文件,例如 CHANGELOG
、LICENSE
和 README
,因为它们将位于您的包文件夹中。
这是一个我创建的包的示例(不是双关语):
现在在pubspec.yaml
中,您应该像这样将您的包作为开发依赖项包含在内:
dev_dependencies:
your_package:
path: ../
我相信您也可以使用常规依赖项,但这对我有用。
现在在/lib
中,您可以添加一个main.dart
文件,导入您的包,然后创建一个示例项目。
【讨论】:
澄清一下,转到您的项目根文件夹并运行flutter create example
。就是这样。
@JoelBroström 顺便说一句,您可以将 README
保留在示例项目中,用于 pub.dev 上的“示例”选项卡,否则它只会显示代码。
@JoelBroström 请将此添加为答案,而不是回复
照你说的做了。感谢您提请我注意。【参考方案2】:
使用项目根目录下内置的flutter命令行工具完成所有工作:
/e/projects/myproject # flutter create example
有这个输出:
Creating project example... androidx: true
example\.gitignore (created)
example\.idea\libraries\Dart_SDK.xml (created)
example\.idea\libraries\Flutter_for_Android.xml (created)
example\.idea\libraries\KotlinJavaRuntime.xml (created)
example\.idea\modules.xml (created)
example\.idea\runConfigurations\main_dart.xml (created)
example\.idea\workspace.xml (created)
example\.metadata (created)
example\android\app\build.gradle (created)
example\android\app\src\main\kotlin\com\example\example\MainActivity.kt (created)
example\android\build.gradle (created)
example\android\example_android.iml (created)
example\android\.gitignore (created)
example\android\app\src\debug\AndroidManifest.xml (created)
example\android\app\src\main\AndroidManifest.xml (created)
example\android\app\src\main\res\drawable\launch_background.xml (created)
example\android\app\src\main\res\mipmap-hdpi\ic_launcher.png (created)
example\android\app\src\main\res\mipmap-mdpi\ic_launcher.png (created)
example\android\app\src\main\res\mipmap-xhdpi\ic_launcher.png (created)
example\android\app\src\main\res\mipmap-xxhdpi\ic_launcher.png (created)
example\android\app\src\main\res\mipmap-xxxhdpi\ic_launcher.png (created)
example\android\app\src\main\res\values\styles.xml (created)
example\android\app\src\profile\AndroidManifest.xml (created)
example\android\gradle\wrapper\gradle-wrapper.properties (created)
example\android\gradle.properties (created)
example\android\settings.gradle (created)
example\ios\Runner\AppDelegate.swift (created)
example\ios\Runner\Runner-Bridging-Header.h (created)
example\ios\Runner.xcodeproj\project.pbxproj (created)
example\ios\Runner.xcodeproj\xcshareddata\xcschemes\Runner.xcscheme (created)
example\ios\.gitignore (created)
example\ios\Flutter\AppFrameworkInfo.plist (created)
example\ios\Flutter\Debug.xcconfig (created)
example\ios\Flutter\Release.xcconfig (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Contents.json (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Icon-App-1024x1024@1x.png (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Icon-App-20x20@1x.png (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Icon-App-20x20@2x.png (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Icon-App-20x20@3x.png (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Icon-App-29x29@1x.png (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Icon-App-29x29@2x.png (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Icon-App-29x29@3x.png (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Icon-App-40x40@1x.png (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Icon-App-40x40@2x.png (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Icon-App-40x40@3x.png (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Icon-App-60x60@2x.png (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Icon-App-60x60@3x.png (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Icon-App-76x76@1x.png (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Icon-App-76x76@2x.png (created)
example\ios\Runner\Assets.xcassets\AppIcon.appiconset\Icon-App-83.5x83.5@2x.png (created)
example\ios\Runner\Assets.xcassets\LaunchImage.imageset\Contents.json (created)
example\ios\Runner\Assets.xcassets\LaunchImage.imageset\LaunchImage.png (created)
example\ios\Runner\Assets.xcassets\LaunchImage.imageset\LaunchImage@2x.png (created)
example\ios\Runner\Assets.xcassets\LaunchImage.imageset\LaunchImage@3x.png (created)
example\ios\Runner\Assets.xcassets\LaunchImage.imageset\README.md (created)
example\ios\Runner\Base.lproj\LaunchScreen.storyboard (created)
example\ios\Runner\Base.lproj\Main.storyboard (created)
example\ios\Runner\Info.plist (created)
example\ios\Runner.xcodeproj\project.xcworkspace\contents.xcworkspacedata (created)
example\ios\Runner.xcworkspace\contents.xcworkspacedata (created)
example\lib\main.dart (created)
example\example.iml (created)
example\pubspec.yaml (created)
example\README.md (created)
example\test\widget_test.dart (created)
Running "flutter pub get" in example... 3.0s
Wrote 68 files.
All done!
[√] Flutter: is fully installed. (Channel stable, v1.12.13+hotfix.5, on Microsoft Windows [Version 6.1.7601], locale en-US)
[√] Android toolchain - develop for Android devices: is fully installed. (Android SDK version 29.0.2)
[√] Android Studio: is fully installed. (version 3.5)
[√] Connected device: is fully installed. (2 available)
In order to run your application, type:
$ cd example
$ flutter run
Your application code is in example\lib\main.dart.
如果使用 Android Studio 3.5.2,请运行默认示例进行保证:
通过从工具栏上的 Flutter 下拉菜单中选择 Edit Configurations... 为示例 main.dart 添加新配置。
选择Run/Debug Configurations对话框左侧的Flutter目录并按下+按钮。
选择颤振
通过单击 Dart 入口点: 对话框中的文件夹,在新的 example/lib 目录中浏览 main.dart。
单击工具栏上的三角形运行按钮。
我刚刚为自己的项目执行了这些步骤,并且效果很好。
然后,要为您的项目进行自定义,请编辑示例的 pubspec.yaml 文件并将依赖项添加到您的项目:
dependencies:
my_project:
path: ../
【讨论】:
【参考方案3】:在 Android Studio 中使用示例创建 Flutter 包
-
新建一个 Flutter 项目
选择颤振包
在 Android Studio 中打开新项目后,选择“终端”选项卡,然后运行:
颤振创建示例
选择“编辑配置”-> 添加配置-> 选择位于 example/lib 文件夹中的 main.dart 文件
打开您的示例 pubspec.yaml 并通过添加链接到库:
您的包裹名称: 小路: ..\
注意:当您打开 Example 文件夹时,它看起来就像是嵌套在您的项目中的整个 Flutter 应用程序;那是因为它是。只需打开 io 和 android 文件夹即可查看它们是否共享该模式:
【讨论】:
这可能是我在***上看到的最好的答案。谢谢? 这比我自己的答案要好得多。将正确答案移至此,希望正在寻找快速答案的人在下面找到旧答案。 很高兴听到它有帮助 只是为了补充这一点,从 cmd 行:创建包:flutter create package [packagname]
。创建示例: cd 进入包 thenflutter create example
【参考方案4】:
转到您的项目根文件夹并运行flutter create example
。
就是这样。
【讨论】:
以上是关于如何将示例项目添加到 Flutter 包中?的主要内容,如果未能解决你的问题,请参考以下文章
如何修复未在 Flutter 项目中安装的 Cloud Firestore 包?
如何在flutter中将另一个包中的类或函数调用到另一个包?