Последовательный запуск в отладке VSCode - PullRequest
0 голосов
/ 18 ноября 2018

Учитывая, что ответ на этот вопрос и частично решен в отношении этого вопроса , теперь у меня есть следующие конфигурации запуска для отладки моего приложения Reaction-Redux + Electron.

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Main",
      "program": "${workspaceFolder}/src/main.js",
      "protocol": "inspector",
      "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
      "runtimeArgs": [
          "--remote-debugging-port=9229",
          "."
      ],
      "windows": {
        "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
      }
    },
    {
        "type": "node",
        "request": "launch",
        "name": "NPM",
        "runtimeExecutable": "npm",
        "runtimeArgs": [
          "run-script",
          "start"
        ],
        "port": 9229
    },
    {
        "type": "chrome",
        "request": "launch",
        "name": "Renderer",
        "url": "https://localhost:3000",
        "webRoot": "${workspaceFolder}/src",
        "runtimeExecutable": "C:/Users/[username]/AppData/Local/Programs/Opera developer/launcher.exe",
        "runtimeArgs": [
          "--remote-debugging-port=9229"
      ],
      "port": 9229
    }
  ],
  "compounds": [
    {
      "name": "All",
      "configurations": [
        "Main",
        "NPM",
        "Renderer"
      ]
    }
  ]
}

Так что это работает так:NPM конфигурация запускает сервер node.js, а затем Renderer и Main соответственно отлаживает интерфейсную часть и внутреннюю часть.

Однако, когда запускается составной параметр, всеони выполняются одновременно, и оба https://localhost:3000/ и приложение для выбора покажут пустой экран, пока сервер не будет полностью настроен.

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

1 Ответ

0 голосов
/ 07 декабря 2018

Я думаю, вы можете сделать свой код рендерера более элегантным, выполнив присоединение вместо запуска.

Например, я использую соединение, в котором запускаю основной, а затем присоединяюсь к средству визуализации со следующим (перезагрузка не требуется).

 {
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch",
      "cwd": "${workspaceRoot}/src/app",
      "runtimeExecutable": "${workspaceRoot}/src/app/node_modules/.bin/electron",
      "windows": {
        "runtimeExecutable": "${workspaceRoot}/src/app/node_modules/.bin/electron.cmd"
      },
      "runtimeArgs": [
        "${workspaceRoot}/src/app",
        "--remote-debugging-port=9222"
      ],
      "console": "integratedTerminal",
      "sourceMaps": true,
      "outFiles": [
        "${workspaceRoot}/src/app/out/**/*.js",
      ],
      "protocol": "inspector",
    },
    {
      "type": "chrome",
      "request": "attach",
      "name": "Attach to Renderer",
      "trace": true,
      "webRoot": "${workspaceRoot}/src/app",
      "sourceMaps": true,
      "port": 9222,
      "timeout": 60000
    },
  ],
  "compounds": [
    {
      "name": "App Main & Renderer",
      "configurations": [
        "Launch App Main",
        "Attach to App Renderer"
      ]
    }
  ]
}
...