信息:我是一个Emacs用户,用来开发带有react的移动应用程序。
描述
最近,我试图开发一个颤振应用程序,我坚持hot-reload部分,我希望颤振能够自动重新加载时,我对lib/*dart__做了修改。
我正在考虑的是看着lib/*dart**'s修改,当它发生时,将一个** r 自动传递给颤振过程。
如何才能到达flutter run过程?
解决方案
Emacs解决方案
在反复阅读存热重装之后,我更新了Emacs的配置文件:
(require 'dart-mode)
(defun auto-reload ()
(shell-command "kill -s SIGUSR1 $(cat /tmp/flutter.pid) && echo 'reload flutter...'"))
(add-hook 'dart-mode-hook
(lambda ()
(add-hook 'after-save-hook 'auto-reload nil 'make-it-local)))这是相当容易的,我不敢相信it...kill的flutter run进程,它将自动重新加载,在发送信号kill -SIGUSR1到flutter run进程通过我们的外壳脚本。
谢谢@pskink,我已经拿出我的大脑再试一次,然后,问题就解决了。
我再次检查了关于描述的linux signal,kill命令描述为:
向指定进程、指定进程组的所有成员或系统上的所有进程发送信号。
不仅仅是粗鲁地杀死了processes...and,这里还有命令行中对kill的描述:
kill [-s sigspec | -n signum | -sigspec] pid | jobspec
...or
kill -l [sigspec]但是,标志--pid-file of described 如下所示:
指定要将进程id写入的文件。您可以发送SIGUSR1以触发热重新加载,并发送SIGUSR2以触发热重新启动。
我们kill -SIGUSR1 $(cat /tmp/flutter.pid),当我们向flutter process发送信号SIGURS1时,就是这样发生的。
我仍然在想,我们是否可以将一个r发送到flutter run进程的“屏幕”?
发布于 2019-03-04 06:33:53
热和钩载是用于服务器端开发的热重加载支持的包,用于文件更改时的热重加载。
我也希望这件事对颤振也有帮助。
您还可以调查源并创建自定义实现。
这个功能是由Dart天文台提供的,这是一个内置在VM中的服务,您可以连接到它,并且可以对命令进行控制。
另见https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md
https://stackoverflow.com/questions/54975511
复制相似问题