Не удается заставить отладку VSCode работать с моим приложением NodeJs

Я пытаюсь отлаживать свое приложение в коде Visual Studio. У меня есть следующая конфигурация на моем package.json:

"scripts": {
    "build": "rimraf dist/ && babel ./ --out-dir dist/ --ignore ./node_modules,./.babelrc,./package.json,./npm-debug.log --copy-files",
    "start": "npm run build && node --inspect=12345 dist/app.js"
}

Я использую ES6 в своем приложении Node, поэтому моя конфигурация build немного запутана.

Когда я запускаю npm start, все работает нормально, я могу использовать свое приложение.

Теперь, чтобы попытаться отладить его, я установил следующие конфигурации launch:

"configurations": [
    {
        "type": "node",
        "name": "Attach to Remote",
        "request": "attach",
        "port": 12345
    },
    {
        "type": "node",
        "request": "launch",
        "name": "Launch Program",
        "program": "${workspaceFolder}\\dist\\app.js"
    }
]

Оба они «работают»: VS Code переключается в «режим отладки», но я не могу попасть в точки останова. Все они становятся серыми:

введите здесь описание изображения

Я попытался исправить это с помощью этого ответа, но не смог заставить его работать...

Любая помощь?

Заранее спасибо!


person João Menighin    schedule 10.11.2018    source источник


Ответы (2)


Я использую VS Code v 1.28.2 и могу выполнять отладку в обоих направлениях.

1) Со встроенным отладчиком (Меню -> Отладка -> Начать отладку)

2) запуск приложения с node inspect index.js. В этом случае вы должны объявить точки останова в своем коде с помощью ключевого слова debugger;. Затем, находясь в режиме отладки и остановившись в точке останова, вы продолжаете выполнение, набрав cont в командной строке.

Надеюсь, поможет

person gkont    schedule 10.11.2018
comment
Спасибо за ответ, gkont. Это сработало, но я ожидал использовать точки останова вместо отладчика. Я нашел решение! Спасибо! - person João Menighin; 10.11.2018

Я обнаружил, что мне просто не хватает --source-maps в моей команде babel-cli... -.- После его добавления VSCode может найти точки останова. Итак, в основном решение было:

Добавьте --source-maps к моей команде сборки:

"scripts": {
    "build": "rimraf dist/ && babel ./ --out-dir dist/ --ignore ./node_modules,./.babelrc,./package.json,./npm-debug.log --copy-files --source-maps",
    "start": "npm run build && node --inspect=12345 dist/app.js"
 }

И я настроил launch следующим образом:

"configurations": [
    {
        "type": "node",
        "request": "launch",
        "name": "Launch Program",
        "program": "${workspaceFolder}\\dist\\app.js",
        "preLaunchTask": "npm: build"
    }
]

Надеюсь, это поможет кому-то!

person João Menighin    schedule 10.11.2018