Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 是否存在一个颤振文件实验工作流?_Flutter - Fatal编程技术网

Flutter 是否存在一个颤振文件实验工作流?

Flutter 是否存在一个颤振文件实验工作流?,flutter,Flutter,动机 我想尽早清理我的颤振目录,而不是事后诸葛亮。我知道,几年后,我将有几十个甚至数百个样本、实验和半心半意的尝试,无论是我自己的,还是来自某某或其他地方的。然后我想清理所有这些,只保留实际的源文件 我不希望每个样本收集500KB的数据,400到2000多个文件(取决于目标平台的数量),然后在以后进行清理,而是希望现在就进行设置,这样从一开始就可以进行清理,以后不需要进行清理 问题 我是一个(坚定的[是的,“总是有一个”])Emacs用户,正在学习颤振。在试验时,我打字 flutter crea

动机

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

我不希望每个样本收集500KB的数据,400到2000多个文件(取决于目标平台的数量),然后在以后进行清理,而是希望现在就进行设置,这样从一开始就可以进行清理,以后不需要进行清理

问题

我是一个(坚定的[是的,“总是有一个”])Emacs用户,正在学习颤振。在试验时,我打字

flutter create newproject
(edit lib/main.dart in Emacs)
(compile and run)
然后我打字

> du -hs newproject
460K    newproject
我理解,无论目标是iOS、Android还是web,中间文件都必须保存在某个地方。尽管如此,至少在学习阶段,这些中间文件是完全可以丢弃的,而且逻辑只适合一个文件的事实是非常令人钦佩的,这是对XML+Java/Kotlin或XML Storyboard+Swift编码的极大改进

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


要清楚,在我这方面写一个简短的脚本是完全容易的。在这里,我想知道我是否可以避免重新发明轮子,特别是我所做的任何事情都肯定远没有(半)官方解决方案那么有特色。

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

一种方法如下。您可以在单个项目中(
lib/main1.dart
lib/main2.dart
,…)保留任意数量的实验。你会保留所有的“中间”文件。然后,只需键入同一项目中的
flatter run-d“lib/main2.dart
,即可运行不同的
main.dart
文件

从技术上讲,所有Dart文件仍然属于同一个项目,但一次只启动一个屏幕。您启动的屏幕将独立于
lib
中剩余的n-1 main.dart文件运行


但是,每次运行一个
main\n.dart
,它都会替换手机上现有的应用程序(它们都具有与本机中定义的应用程序id相同的应用程序id)。这适用于快速试验,但不利于实际发布。

我认为这不是一种正式的方法,最接近的方法是使用示例(
flatter create--sample=widgets.SingleChildScrollView.1 mysample
),但这只会改变main.dart的内容,所有其他结构都将被创建。我相信剧本是比较容易的选择。也在考虑如何修补emacs,如何体验颤振?@croxx5f emacs下的支撑简直太棒了。到目前为止,我在编程支持方面看到的最好的东西(Emacs的书呆子们什么都用Emacs,而不仅仅是写源代码)是Python下的flycheck。不过,flutter的支持甚至超过了这一点。我很想编辑你的答案,以确保我能理解。你介意我这样做吗?我基本上要确认:目录
lib
可以包含无限数量的Dart文件(
main1.Dart
main2.Dart
,…)。这些与独立项目相对应。然后输入
flatter run-d“lib/main17.dart
即可运行该代码,独立于
lib
中的
n-1
main.dart文件。这是一个准确的陈述吗?继续:编辑答案=)。但是,嗯,我不一定把它们称为独立的项目,但是每个项目都可以运行,并且会根据特定文件中的内容显示不同的屏幕。但是,每次运行一个应用程序时,它都会替换手机上现有的应用程序(它们都具有与本机中定义的应用程序id相同的应用程序id)。就像我说的,我不确定你的目标到底是什么——这对于快速试验一堆不同的东西很有效,但对于真正的出版来说根本不理想。酷。这就是我要找的。我会编辑你的答案来添加我希望的细节,如果必要的话,你会编辑它来纠正它。另一个技巧本来是不错的,但我无法让它发挥作用。设置从
main.dart
lib
中的一个文件(
hello\u world.dart
increment\u counter.dart
,…)的软链接,并通过运行
flatter run-d C4747533-…-4837 lib/main.dart
启动。然后,要从一个应用程序(实际上是一个屏幕)切换到另一个应用程序,请修改软链接,然后按热重新加载。您甚至可以尝试使用一个main.dart文件和一个main函数,这个main函数除了从另一个文件调用一个main函数之外什么都不做,并让它导入您的其他文件中的任何一个,尽管我不完全相信即使热重启也能真正使用它。如果你打算这样做的话,值得一试!(即,…
将'main2.dart'导入为realmain
realmain.main(…)
,)