Может ли Visual Studio Code быть настроен на запуск электрона

Поскольку Visual Studio Code был создан с использованием Electron, я предполагаю, что launch.json может быть настроен для правильного запуска приложения с помощью Electron. Но я еще не понял, как это сделать.

Кроме того, поскольку Electron основан на io.js, сам основан на Node.js, я думаю, возможно... это можно сделать, но пока не нашли волшебство.

Пробовал что-то в этом направлении... snippet from launch.json:

"configurations": [
    {
        // Name of configuration; appears in the launch configuration drop down menu.
        "name": "Launch Electron",
        // Type of configuration. Possible values: "node", "mono".
        "type": "node",
        // Workspace relative or absolute path to the program.
        "program": "Y:\\dev\\electron\\electron.exe",
        // Automatically stop program after launch.
        "stopOnEntry": false,
        // Command line arguments passed to the program.
        "args": ["CrawlSpace_Electron\\"],
        // Workspace relative or absolute path to the working directory of the program being debugged. Default is the current workspace.
        "cwd": ".",
        // Workspace relative or absolute path to the runtime executable to be used. Default is the runtime executable on the PATH.
        "runtimeExecutable": null,
        // Environment variables passed to the program.
        "env": { }
    }, 

Он запускает Electron, но терпит неудачу (окно исчезает слишком быстро, чтобы понять, почему именно).

Любые мысли?

Ответ 1

Если вы укажете electronic.exe как runtimeExecutable (как было предложено ранее), вы можете передать файл main.js в качестве программы, и он будет работать. Electron позволяет указать каталог или файл main.js, так как это в значительной степени указывает на то, на что указывает package.json. Используя конфигурацию ниже в моем файле launch.json, нажав F5, запустили Electron с моим приложением и подключили отладчик к основному процессу (в конце концов)...

{
    "name": "Launch Electron",
    "type": "node",
    "program": "${workspaceRoot}/app/main.js", // ensure this is path to main.js file
    "stopOnEntry": false,
    "args": [], 
    "cwd": "${workspaceRoot}",
    // as you have noted, this is also important:
    "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd"
}, 

Мой файл main.js находится в папке приложения, которую я обычно передавал в Electron.

Ответ 2

Да, возможно. Не только VSCode мог запускать Electron, но и отлаживать его.

Используя node, вы можете отлаживать процесс Electron Main, но с отладчиком для Chrome вы также можете отлаживать процесс Electron Renderer. Я написал сообщение в блоге по этой теме: http://code.matsu.io/1.

Нынешний самый высокий ответ с задержкой немного устарел.

  • Вы должны использовать electron вместо electron-prebuilt. См. http://electron.atom.io/blog/2016/08/16/npm-install-electron
  • Вы должны использовать node_modules/.bin/electron для запуска electron
  • В Windows это electron.cmd, а не electron.exe.

Вот два предварительно сконфигурированных проекта: https://github.com/octref/vscode-electron-debug.

Вот launch.json для первого проекта. Для запуска целевого "Отладочного процесса рендеринга" вам необходимо установить "Отладчик для Chrome" . Но "Debug Main Process" отлично работает на ванильном VSCode.

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Main Process",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
      // Use the following for Windows
      // "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd",
      "program": "${workspaceRoot}/main.js"
    },
    {
      "name": "Debug Renderer Process",
      "type": "chrome",
      "request": "launch",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
      // Use the following for Windows
      // "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd",
      "runtimeArgs": [
        "${workspaceRoot}/main.js",
        "--remote-debugging-port=9222"
      ],
      "webRoot": "${workspaceRoot}"
    }
  ]
}

Ответ 3

В теории должно работать следующее: Укажите electronic.exe как "runtimeExecutable" (поскольку он заменяет среду выполнения node). Электронная программа ( "CrawlSpace_Electron \" ) становится "программой". VSCode автоматически передает "-debug-brk" или "--debug" в файл electron.exe. На практике VSCode еще не поддерживает эту настройку, потому что версия предварительного просмотра VSCode пытается проверить, что атрибут "program" является файлом, который существует на диске. Но для электрона "программа" должна быть каталогом. Я создал ошибку на нашей стороне и убедитесь, что она исправлена ​​с помощью следующей версии.

Ответ 4

В OSX путь к электрону равен

"runtimeExecutable": "${workspaceRoot}/node_modules/electron-prebuilt/dist/Electron.app/Contents/MacOS/Electron",