Я пытаюсь запустить приложение в режиме отладки из кода Visual Studio. Когда я нажимаю кнопку отладки, возникает следующая ошибка:
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Cannot find module 'C:\electron2\electron_app\--inspect-brk=15965'
at Module._resolveFilename (internal/modules/cjs/loader.js:602:15)
at Function.Module._resolveFilename (C:\electron2\electron_app\node_modules\electron\dist\resources\electron.asar\common\reset-search-paths.js:35:12)
at Function.Module._load (internal/modules/cjs/loader.js:528:25)
at Module.require (internal/modules/cjs/loader.js:658:17)
at init (C:\electron2\electron_app\node_modules\electron-compile\lib\config-parser.js:294:16)
at main (C:\electron2\electron_app\node_modules\electron-prebuilt-compile\lib\es6-init.js:58:29)
at Object.<anonymous> (C:\electron2\electron_app\node_modules\electron-prebuilt-compile\lib\es6-init.js:61:1)
at Object.<anonymous> (C:\electron2\electron_app\node_modules\electron-prebuilt-compile\lib\es6-init.js:63:3)
at Module._compile (internal/modules/cjs/loader.js:711:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:722:10)
Моя конфигурация отладки выглядит так
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type": "node",
"request": "launch",
"cwd": "${workspaceRoot}",
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
"windows": {
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd"
},
"args" : ["."]
}
]
}
Также обнаружена еще одна ошибка:
No such module: atom_browser_features
Никогда раньше не слышал о таком модуле.
Раньше работала, но вдруг перестала работать. Кто-нибудь знает, в чем может быть проблема?
Похоже, --inspect-brk=15965 как-то интерпретируется как «основной» скрипт. Было бы полезно увидеть команду, которую VSCode генерирует для запуска электрона под отладчиком.
@JakeHolzinger, в моем случае команда определена в launch.json (который я скопировал из этот рецепт VSCode), и это "${workspaceFolder}/node_modules/.bin/electron.cmd"
Первая строка вывода в представление «Консоль отладки» - это команда, на которую я ссылаюсь. Используя проект electron-quick-start, я получаю следующую команду G:\Development\vscode-electron-debug\electron-quick-start/node_modules/.bin/electron.cmd --inspect-brk=32785 main.js, когда запускаю конфигурацию «Debug Main Process». У меня нет проблем с запуском приложения быстрого запуска под [email protected], так что проблема, скорее всего, в другом.
@JakeHolzinger, это будет C:/test/node_modules/.bin/electron.cmd --remote-debugging-port=9223 . --inspect-brk=47365. Обновление до версии 3.0.8, похоже, устранило проблему, спасибо!. Вы все равно должны увидеть эти ошибки, если отметите All Exceptions в режиме отладки (F1, «Сосредоточьтесь на представлении точек останова»), а затем начнете отладку, но они больше не прерывают остальную часть сеанса отладки для меня. Я предполагаю, что их можно безопасно игнорировать, потому что они являются исключениями первого шанса, которые обнаруживаются позже. Не стесняйтесь размещать ответ, чтобы получить награду :)
@JakeHolzinger о, и передайте мои наилучшие пожелания Игорю в качестве доказательства шести степеней разделения)
Без проблем. Ты знаешь Игоря, а? Маленький мир :) подойдет!
Есть ли у вас в devDependencies электронная сборка? Вам это действительно нужно? Попробуйте удалить его: удалите строку, удалите node_modules и package-lock.json и выполните новую установку npm.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вместо "$ {workspaceRoot} /node_modules/.bin/electron" используйте "{workspaceRoot} \\ node_modules \ .bin \\ electronic" в runtimeexecutable и windows: {runtimeexecutable}, как я полагаю, вы используете Windows.
Спасибо, но не помогло.
Вероятно, у вас возникли проблемы, потому что --inspect-brk=15965 интерпретируется как «основной» сценарий.
Предположим, что командная строка сгенерирована аналогично noratio:
C:/test/node_modules/.bin/electron.cmd --remote-debugging-port=9223 . --inspect-brk=47365
Вы можете видеть, что --inspect-brk идет после объявленных аргументов, однако аргументы узла должны быть объявлены до «основного» сценария. Вы можете попробовать выполнить обновление до [email protected], чтобы увидеть, решится ли проблема сама собой. В качестве альтернативы вы можете попытаться более четко указать точку входа, как это было сделано в проекте electron-quick-start.
{
"name": "Debug Main Process",
"type": "node",
"request": "launch",
"cwd": "${workspaceRoot}",
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
"windows": {
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd"
},
"program": "${workspaceRoot}/main.js",
"protocol": "inspector"
}
Спасибо за совет. Я пробовал (электронное обновление + изменение конфигурации), но, к сожалению, не помогает. Также невозможно запустить приложение из командной строки. Ошибка, которую я получаю, относится к строке: const app = electron.app || electron.remote.app; - это TypeError: Cannot read property 'app' of undefined
То же самое, похоже, ошибка, которую они могли внести в v3.0.x. Рассмотрите возможность создания проблемы на их гитхаб. Примечательно, что при поиске в Google "atom_browser_features" ничего не появляется, кроме этого q.