首页 > 解决方案 > 是否存在一个 Flutter 文件的实验工作流程?

问题描述

动机

我想尽早清理我的 Flutter 目录,而不是事后才想到。我知道,几年后,我将拥有数十个甚至数百个样本、实验和半心半意的尝试,无论是我自己的还是来自 SO 或其他地方的。然后我想清理所有这些并只保留实际的源文件。

我不想为每个样本收集 500KB,包含 400 到 2000+ 个文件(取决于目标平台的数量)并在以后清理,我想现在进行设置,以便从一开始就清理干净,而不是清理-稍后需要 up 。

问题

我是一个(坚定地致力于 [是的,“总有这样一个”])正在学习 Flutter 的 Emacs 用户。在试验时我输入

flutter create newproject
(edit lib/main.dart in Emacs)
(compile and run)

然后我输入

> du -hs newproject
460K    newproject

我知道中间文件——无论目标是 iOS、Android 还是网络——都必须保存在某个地方。尽管如此,这些中间文件至少在学习阶段是完全可以丢弃的,而且逻辑只适合一个文件这一事实非常令人钦佩,这是对 XML+Java/Kotlin 或 XML-Storyboard+ 编码的巨大改进迅速。

是否存在可以让我说的工作流程:这个目录由 30 个不同main.dart的 s 组成;我会根据一个文件从命令行运行一些东西,休息 30 秒,然后在生成中间文件时回来?

需要明确的是,在我这边编写一个简短的脚本来做到这一点是完全容易的。在这里,我想知道我是否可以避免重新发明轮子,特别是我所做的任何事情肯定会比(半)官方解决方案少得多。

标签: flutter

解决方案


你可以接近你想要的flutter create。如果您指定所有相同的参数,它将尝试重建而不是每次都替换所有内容。它会根据需要覆盖 iOS/Android 文件,但不会覆盖main.dart.

一种方法如下。您可以在单个项目中的 ( lib/main1.dart, , ...)中保留任意数量的实验。lib/main2.dart您将保留所有“中间”文件。然后,您可以通过键入来运行不同main.dart的文件,例如,flutter run -d "<device>" lib/main2.dart来自同一个项目。

从技术上讲,你所有的 Dart 文件仍然属于同一个项目,但你一次只启动一个屏幕。您正在启动的屏幕将独立于lib.

但是,每次您运行 onemain_n.dart时,它​​都会替换手机上现有的应用程序(它们都将具有与在本机方面定义的应用程序 ID 相同的应用程序 ID)。这适合快速试验,但不适合实际发布。


推荐阅读