Как редактировать проект флаттера с помощью emacs? - PullRequest
0 голосов
/ 04 марта 2019

ИНФОРМАЦИЯ: Я пользователь Emacs, который использовал для разработки мобильных приложений с реагирующим родным языком.

Описание

В последнее время я пытаюсьразработать приложение флаттера, привязанное к части hot-reload, я надеюсь, что флаттер может перезагрузиться автоматически, когда я внесу изменения в lib/*dart.

Я думаю о том, чтобы наблюдать за *Модификация 1014 *, как это происходит, автоматически передает r процессу флаттера.

Как мне достичь процесса flutter run?

Решение

Emacs Solution

После прочтения Горячая перезагрузка при сохранении снова и снова, я обновлял файл конфигурации 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 -SIGUSR1 на flutter run через наш shell-скрипт.

Спасибо @pskink, я взял свой мозг и попробовал снова, затем проблема была решена.

Я проверил описание о linux signal снова,Команда kill, описанная как:

Отправляет сигнал указанному процессу, всем членам указанной группы процессов или всем процессам в системе.

Не просто грубое уничтожение процессов ... а вот описание kill в командной строке:

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

Однако флаг --pid-file flutter описывается примерно так:

Укажите файл для записи идентификатора процесса.Вы можете отправить SIGUSR1 для запуска горячей перезагрузки и SIGUSR2 для запуска горячей перезагрузки.

Мы kill -SIGUSR1 $(cat /tmp/flutter.pid), так как мы посылаем сигнал SIGURS1 на flutter process, вот что произошло.

Мне все еще интересно, можем ли мы просто отправить r на «экран» процесса flutter run?

1 Ответ

0 голосов
/ 04 марта 2019

https://pub.dartlang.org/packages/angel_hot и https://pub.dartlang.org/packages/jaguar_hotreload являются пакетами для поддержки горячей перезагрузки для разработки на стороне сервера - для горячей перезагрузки при изменениях файлов.
Я ожидаю, что это будет работать для Flutter какну.

Вы также можете исследовать источник и создать собственную реализацию.
Функциональность обеспечивается обсерваторией Dart, службой, встроенной в виртуальную машину, к которой вы можете подключиться и которой можно управлять с помощью команд..

См. Также https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...