Razzle: Отладка сервера узлов с помощью vscode

Созданный на 20 мар. 2018  ·  11Комментарии  ·  Источник: jaredpalmer/razzle

Я пытаюсь отладить сервер узлов с помощью vscode. Я запускаю yarn start --inspect и подключаю отладчик с этой конфигурацией к своему launch.json

{
   "type": "node",
   "request": "attach",
   "name": "Attach",
   "port": 9230,
   "outFiles": [
      "${workspaceRoot}/build/**/*.js"
   ]
}

Я могу установить точку останова в build/server.js (красная точка), но не могу установить ее в src/index.js (серый кружок). Что я делаю не так с исходными картами :thinking: ?

Самый полезный комментарий

Я решил это, используя другую настройку исходной карты, VSCode, похоже, не нравится вариант cheap-module-sourcemap .
razzle.config.js :

module.exports = {
    modify(config, { target, dev }, webpack) {
        config.devtool = dev ? 'eval-source-map' : 'none';
        return config;
    }
}

launch.json :

{
    "name": "Attach to dev server",
    "type": "node",
    "request": "attach",
    "protocol": "inspector",
    "address": "localhost",
    "port": 9230
}

и запустите сервер с yarn start --inspect --inspect-port 9230

* отредактировано, спасибо @dguyonvarch за обнаружение ошибки.

Все 11 Комментарий

Мне повезло с прикреплением по идентификатору процесса. Также есть параметр конфигурации запуска sourceMaps vscode, для которого можно установить значение true.

    {
      "type": "node",
      "request": "attach",
      "name": "Attach by Process ID",
      "processId": "${command:PickProcess}",
      "restart": true
    }

@ajsharp спасибо за ответ :smiley_cat:

То же, что метод присоединения. Я не могу установить точку останова в src/index.js.

Параметр sourceMaps по умолчанию имеет значение true (см. https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_source-maps).

Я решил это, используя другую настройку исходной карты, VSCode, похоже, не нравится вариант cheap-module-sourcemap .
razzle.config.js :

module.exports = {
    modify(config, { target, dev }, webpack) {
        config.devtool = dev ? 'eval-source-map' : 'none';
        return config;
    }
}

launch.json :

{
    "name": "Attach to dev server",
    "type": "node",
    "request": "attach",
    "protocol": "inspector",
    "address": "localhost",
    "port": 9230
}

и запустите сервер с yarn start --inspect --inspect-port 9230

* отредактировано, спасибо @dguyonvarch за обнаружение ошибки.

@benhamlin :smile_cat: Отлично работает!
Я только что исправил ваш фрагмент с помощью:

module.exports = {
  modify: (config, { target, dev }, webpack) => {
      config.devtool = dev ? 'eval-source-map' : 'none';
      return config
  }
}

Я нахожу это в razzle/packages/razzle/config/createConfig.js строке 93:

// Controversially, decide on sourcemaps.
devtool: 'cheap-module-source-map'

Так что я открываю полемику :wink: ! Почему cheap-module-source-map , а не eval-source-map

Кто-нибудь хочет добавить в документацию раздел об этом рецепте?

@jaredpalmer Могу ли я предложить запрос на слияние с eval-source-map ? В этом случае нет необходимости обновлять документ.

Хола! Итак, вот в чем дело, между открытым исходным кодом и моей повседневной работой и жизнью, а чем-то еще, мне есть чем управлять, поэтому я использую бота GitHub, чтобы автоматизировать несколько вещей здесь и там. Этот конкретный бот GitHub пометит это как устаревшее, потому что какое-то время в нем не было активности в последнее время. Он будет закрыт, если в течение нескольких дней не будет никакой активности. Не принимайте это близко к сердцу — это полностью автоматизированное действие. Если это ошибка, просто оставьте комментарий, напишите мне в ЛС, отправьте почтового голубя или дымовой сигнал.

ProBot автоматически закрыл это из-за бездействия. Крикните, если это ошибка, и мы снова откроем его.

Обновление: лучший способ получить vscode для отладки сервера — добавить это в ваш launch.json и оставить конфигурацию devtool по умолчанию.

Это позволит выполнять отладку VSCode, а также улучшит отладку клиента (eval-source-maps ломает средство просмотра ошибок отладки React).

"sourceMapPathOverrides": {
    "webpack:///*": "${workspaceRoot}/*"
 }

Спасибо @бенхамлин. Есть ли у вас возможность легко переподключиться к экземпляру отладчика в VSCode после мягкого перезапуска ( rs затем ENTER ) в Razzle?

ATM, если я делаю мягкий перезапуск, отладчик VSCode отключается, поэтому мне приходится убивать сервер и перезапускать его, а затем снова подключать отладчик.

@benhamlin Это работает как шарм с этой конфигурацией :wink:

{
      "type": "node",
      "request": "attach",
      "name": "Attach",
      "port": 9230,
      "sourceMapPathOverrides": {
         "webpack:///*": "${workspaceRoot}/*"
      }
}

@ourmaninamsterdam RS перезапустите сервер на новом порту отладки (9230 + 1), поэтому вам нужно изменить порт подключения в конфигурации запуска. дальше не стал разбираться :disappointed:

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

sebmor picture sebmor  ·  4Комментарии

mhuggins picture mhuggins  ·  3Комментарии

corydeppen picture corydeppen  ·  3Комментарии

gabimor picture gabimor  ·  3Комментарии

kkarkos picture kkarkos  ·  3Комментарии