#debugging #electron #headless
#отладка #electron #безголовый
Вопрос:
У меня есть приложение Electron с кодом, подобным
let win = new BrowserWindow({ show: false, frame: false, webPreferences: {preload: "/path/to/preload.js", ...}, ...});
и при разработке новой функции я пропустил одну закрывающую скобку и одну закрывающую скобку. Конечно, я этого не знал, и вместо этого я получил вывод на консоль при попытке запустить приложение
[18330:1204/142153.915989:INFO:CONSOLE(91)] "Unable to load preload script: /path/to/preload.js", source: electron/js2c/renderer_init.js (91)
[18330:1204/142153.916049:INFO:CONSOLE(91)] "SyntaxError: missing ) after argument list", source: electron/js2c/renderer_init.js (91)
По какой-то причине electron не хочет делиться исключением, которое он фактически получает при попытке загрузить сценарий предварительной загрузки. Например, номер строки исходной ошибки синтаксического анализа был бы отличным! Так что в итоге я не имею ни малейшего представления о реальной причине только в одном журнале. Обратите внимание, что эта проблема связана с проблемами с содержимым сценария предварительной загрузки — я знаю, что у некоторых людей возникают проблемы с тем, что сценарий предварительной загрузки не найден electron.
Также обратите внимание, что во второй строке журнала утверждается, что ошибка находится в файле electron/js2c/renderer_init.js
в строке 91, что, очевидно, является только неправильным сообщением от electron.
Есть ли способ записать фактическую ошибку синтаксического анализа в журнал?Я пытаюсь создать приложение без головы для запуска, xvfb-run
поэтому мне нужно иметь выходные данные в журнале.
В настоящее время я работаю с electron v10.0.1, но я готов воспользоваться подсказками для любой версии. В настоящее время единственный путь вперед — использовать внешние линтеры или случайным образом закомментировать недавно измененные блоки кода и попытаться выяснить проблему вручную. Должен быть лучший способ.
Я уже передаю следующие флаги командной строки в electron:
--enable-logging --v=2 --debug-print --noerrdialogs --headless