Ошибка «A JavaScript error occurred in the main process¶
«A JavaScript error occurred in the main process» — сообщение об ошибке, возникающее в приложениях, построенных на фреймворке Electron, при запуске или работе программы. Окно приложения обычно отображает белый или чёрный экран, после чего программа завершается. Ошибка относится к главному (main) процессу приложения — тому, который управляет окнами, системными ресурсами и взаимодействием с операционной системой.
¶Причины возникновения
К наиболее распространённым причинам относятся:
- Повреждение файлов приложения — неполная установка, сбой при обновлении, вмешательство антивируса или сбой на диске.
- Конфликты с драйверами — устаревшие или несовместимые драйверы видеокарты (особенно на Windows) приводят к сбоям при запуске.
- Проблемы с профилем пользователя — повреждённые файлы конфигурации в папке данных приложения.
- Отсутствующие системные компоненты — не установлены или устарели Visual C++ Redistributable, .NET Framework, WebView2.
- Конфликты стороннего ПО — антивирусы, оверлеи (Discord, MSI Afterburner), программы перехвата мыши и клавиатуры.
- Некорректная локализация системы — некоторые приложения падают при нестандартной кодовой странице или системной локали.
- Недостаток прав — запуск без прав администратора при попытке записи в защищённые каталоги.
¶Способы исправления
¶Проверка целостности файлов
Для приложений из Steam или Epic Games Launcher доступна функция проверки целостности файлов: библиотека → ПКМ по игре → Свойства → Установленные файлы → «Проверить целостность файлов». Для программ, установленных вручную, полезно полностью удалить приложение (включая папки данных) и установить заново.
¶Удаление папки конфигурации
Многие Electron-приложения хранят настройки в скрытых каталогах пользователя. Удаление этих папок сбрасывает конфигурацию к значениям по умолчанию и часто устраняет ошибку. Типичные расположения:
| ОС | Путь |
|---|---|
| Windows | %APPDATA%\<имя приложения> |
| Windows | %LOCALAPPDATA%\<имя приложения> |
| macOS | ~/Library/Application Support/<имя приложения> |
| Linux | ~/.config/<имя приложения> |
¶Обновление драйверов и системных компонентов
Следует установить последние версии драйверов видеокарты (NVIDIA, AMD, Intel) с официального сайта. Для Windows рекомендуется установить свежий пакет Visual C++ Redistributable (2015–2022) и WebView2 Runtime.
¶Запуск в совместимом режиме
На Windows можно попробовать запустить приложение в режиме совместимости с предыдущей версией ОС: ПКМ по ярлыку → Свойства → Совместимость → «Запуск в режиме совместимости». Также полезно попробовать запуск от имени администратора.
¶Отключение стороннего ПО
Временное отключение антивируса, брандмауэра и оверлеев помогает выявить конфликт. Если после отключения конкретной программы ошибка исчезает, необходимо добавить приложение в исключения соответствующего ПО.
¶Проверка локали и кодовой страницы
В Windows ошибка может быть связана с нестандартной системной локалью. Панель управления → Язык → Изменение метода ввода → Дополнительные настройки → Дополнительно → снять галку «Использовать расширенные раскладки для поддержки языка». Также помогает установка локали «English (United States)» в качестве системной.
¶Диагностика для разработчиков
Приложение на Electron можно запустить из командной строки с флагом --enable-logging, что выводит подробный журнал ошибок. В коде приложения перехват необработанных исключений главного процесса осуществляется через события process.on('uncaughtException') и process.on('unhandledRejection'). Для отладки главного процесса используется Chrome DevTools, подключаемые через --inspect при запуске.
¶Интересные особенности
Сообщение «A JavaScript error occurred in the main process» является стандартным диалогом Electron: фреймворк перехватывает необработанные исключения и показывает модальное окно с предложением перезапустить приложение. Разработчики могут переопределить поведение через обработчик app.on('render-process-gone') и app.on('child-process-gone'), а также отключить стандартный диалог через dialog.showErrorBox.
