Вы хотите просто сконцентрироваться на разработке и не думать о перезагрузке процесса и прочем внутреннем делах? Хотите просто написать код и сразу увидеть результат?

Webpack - это решение. Склеить все части вместе немного сложно, но не беспокойтесь - electronic-webpack значительно упрощает настройку (таким же удобным и удобным способом, как electronic-builder упрощает упаковку и распространение приложений Electron). В настоящее время требуется особая структура проекта, но возможность настройки и использования для любой структуры проекта будет добавлена ​​по запросу.

С помощью electronics-webpack вы можете просто запустить yarn dev в терминале и все. Вернемся в IDE и напишем код.

Практически все загрузчики webpack поддерживают HMR (горячую замену модуля), и в процессе рендеринга горячая замена модуля в большинстве случаев будет работать без каких-либо усилий.

Но в основном процессе нужно явно использовать Hot API - это на первый взгляд не интуитивно понятно, но в целом довольно удобно.

Например, если в вашем основном файле записи (index.ts) основного процесса вы настраиваете IPC, при горячей замене модуля вам необходимо его перенастроить:

if (module.hot != null) {
  module.hot.accept("./ProjectInfoProducer", () => {
    rxIpc.cleanUp()
    configureIpc(storeManager)
  })
}

Что это за код? Если модуль ProjectInfoProducer или любые его дочерние модули изменились, удалите все текущие прослушиватели IPC и снова установите IPC. Вы можете найти этот код в приложении Electrify (поиск по module.hot). Эти несколько строк кода позволяют разрабатывать приложение Electron без утомительного перезапуска.

Не имеет значения, сколько и насколько сложны прослушиватели IPC - нет необходимости реализовывать логику принятия в каждом модуле, если модуль не обрабатывает горячую замену, Webpack аннулирует его родительский элемент и так далее до корня.

Что произойдет, если вы не реализуете accept, или возникнет какая-то ошибка, или будет изменен ваш основной файл ввода? electron-webpack об этом позаботится. В этом случае приложение будет перезапущено автоматически.

HMR не только экономит ваше время, но и делает отладку основного процесса удобной в среде IDE (IntelliJ IDEA, WebStorm и другие IDE JetBrains полностью поддерживают отладку приложений Electron), поскольку процесс не перезапускается и, следовательно, отладочное соединение не закрывается. В настоящее время отладка в среде IDE не является простой, но вскоре будет предоставлена ​​поддержка и учебные пособия.

Да, Webpack HMR - это продвинутый уровень, но electronics-webpack позаботится обо всем, кроме Hot API в основных модулях процесса вашего приложения, поэтому стоит потратить несколько часов на настройку (а в рендерере это обработать). в большинстве случаев будет работать без особых усилий).