gpt4 book ai didi

emacs - 如何使用 emacs 编辑 flutter 项目?

转载 作者:IT王子 更新时间:2023-10-29 06:45:28 27 4
gpt4 key购买 nike

INFO: I'm a Emacs user used to develop mobile apps with react-native.

描述

最近在尝试开发一个flutter应用,卡在了hot-reload部分,希望flutter能在我修改lib/时自动重新加载*飞镖

我正在考虑的是观察 lib/*dart 的修改,当它发生时,自动将 r 传递给 flutter 进程。

如何到达flutter run进程?

解决方案

Emacs 解决方案

看完Hot reload on save一遍又一遍,我更新了我的 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)))

这很简单,我不敢相信...杀死 flutter run 进程,它会自动重新加载,在发送信号 kill -SIGUSR1flutter run 通过我们的 shell 脚本处理。

感谢@pskink,我动脑再试了一遍,问题解决了。

我检查了 description关于linux signalkill命令描述为:

Sends a signal to a specified process, to all members of a specified process group, or to all processes on the system.

不仅仅是粗暴地杀死进程......这是命令行中kill的描述:

kill [-s sigspec | -n signum | -sigspec] pid | jobspec
...or
kill -l [sigspec]

flutter的flag--pid-file是这样描述的:

Specify a file to write the process id to. You can send SIGUSR1 to trigger a hot reload and SIGUSR2 to trigger a hot restart.

我们kill -SIGUSR1 $(cat/tmp/flutter.pid),因为我们发送信号SIGURS1flutter process,那是发生了什么。

我仍然想知道,我们是否可以将 r 发送到 flutter run 进程的“屏幕”?

最佳答案

https://pub.dartlang.org/packages/angel_hothttps://pub.dartlang.org/packages/jaguar_hotreload是用于服务器端开发的热重载支持的包 - 在文件更改时热重载。
我希望这也适用于 Flutter。

您还可以调查来源并创建自定义实现。
该功能由 Dart observatory 提供,这是一种内置于 VM 中的服务,您可以连接到该服务并可以通过命令对其进行控制。

另见 https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md

关于emacs - 如何使用 emacs 编辑 flutter 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54975511/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com