Как отладить проект nodemon в VSCode - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть проект NodeJs, и я запускаю его с помощью nodemon,
Я хочу запустить его в режиме отладки для задач разработки, но я не могу этого сделать.

Я обнаружил, что мне нужно добавить правильную конфигурацию в файл launch.json в папке .vscode,
У меня есть файл app.js, который является основным файлом приложения.
И приложение работает на node version 4.6.2 и Port 8080.
В обычном случае я запускаю приложение с помощью команды npm run dev.

Ниже приведен мой файл launch.json -

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "MyApp",
            "program": "${workspaceFolder}/app.js",
            "runtimeVersion": "4.6.2",
            "protocol": "legacy",
            "port": 8080
            //"runtimeExecutable": "/home/user/.nvm/versions/node/v4.6.2/bin/node"
        },
        {
            "type": "node",
            "request": "launch",
            "name": "nodemon",
            "runtimeExecutable": "nodemon",
            "program": "${workspaceRoot}/app.js",
            "restart": true,
            "console": "integratedTerminal",
            "internalConsoleOptions": "neverOpen",
            "runtimeVersion": "4.6.2",
            "protocol": "legacy",
            "port": 8080
        },
        {
            "type": "node",
            "request": "launch",
            "name": "DEBUG",
            "runtimeExecutable": "nodemon",
            "program": "${workspaceFolder}/app.js",
            "restart": true,
            "console": "integratedTerminal",
            "internalConsoleOptions": "neverOpen",
            "runtimeVersion": "4.6.2",
            "protocol": "legacy",
            "port": 8080
        }
    ]
}

Package.json выглядит следующим образом -

{
  "name": "myapp",
  "description": "myapp",
  "version": "1.35.0",
  "private": true,
  "scripts": {
    "dev": "nodemon app.js",
    "debug": "nodemon app.js"
  },
  "dependencies": {
    "async": "1.3.0",
    "aws-sdk": "2.7.20",
    "aws-xray-sdk": "^2.1.0",
    "aws-xray-sdk-restify": "^1.3.0-beta",
    "bcrypt": "0.8.5",
    "body-parser": "1.12.3",
    "compression": "^1.7.0",
    "connect-flash": "0.1.1",
    "cookie-parser": "1.3.4",
    "cron": "1.0.9",
    "csurf": "^1.9.0",
    "csvtojson": "^1.1.2",
    "date-utils": "1.2.16",
    "dotenv": "4.0.0",
    "email-templates": "1.2.1",
    "express": "4.12.3",
    "express-handlebars": "2.0.0",
    "express-jwt": "^5.1.0",
    "express-mailer": "0.2.4",
    "express-session": "1.11.1",
    "express-validator": "3.1.3",
    "handlebars": "^3.0.3",
    "helmet": "^3.5.0",
    "html-pdf": "1.4.0",
    "json-2-csv": "2.0.12",
    "jsonwebtoken": "^7.3.0",
    "multer": "^0.1.8",
    "mysql": "2.6.2",
    "newrelic": "1.25.0",
    "node-schedule": "^1.3.0",
    "nodemailer": "^1.3.4",
    "nodemailer-ses-transport": "1.2.0",
    "passport": "0.2.1",
    "passport-local": "1.0.0",
    "path": "0.11.14",
    "promise": "7.0.0",
    "qs": "^2.4.1",
    "replaceall": "0.1.6",
    "request": "2.55.0",
    "run-parallel": "1.1.0",
    "validator": "^7.0.0",
    "winston": "^2.3.1",
    "winston-daily-rotate-file": "^1.7.0",
    "xlsx": "0.8.8"
  },
  "devDependencies": {
    "nodemon": "^1.17.3"
  }
}

Приложение запускается при запуске конфигураций DEBUG и nodemon,
Но код не останавливается на точках останова, которые я поставил в файле app.js.

Справочные ссылки -
1. https://github.com/Microsoft/vscode-recipes/tree/master/nodemon
2. https://github.com/bdspen/nodemon_vscode
3. Можно ли настроить код Visual Studio для запуска с помощью nodemon
4. Невозможно выполнить отладку в VSCode при подключении к Chrome
5. https://code.visualstudio.com/docs/editor/debugging

Какие изменения требуются в package.json или какие-либо исправления в конфигурации запуска - launch.json, которые помогли бы мне отладить приложение в VSCode для моего сценария использования?

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Измените package.json на

"scripts": {
    "dev": "node app.js",
    "debug": "nodemon --inspect app.js"
}

- проверить для версий> = 6.3.--legacy или --auto для более старых версий

И launch.json для:

"version": "0.2.0",
"configurations": [
    {
        "type": "node",
        "request": "attach",
        "name": "Node: Nodemon",
        "processId": "${command:PickProcess}",
        "restart": true,
        "protocol": "inspector"
    }
]

флаг перезапуска является ключевым здесь.

Запуск приложения с помощью нового сценария отладки

npm run debug

  • В представлении отладки выберите Node: Nodemon настройки и нажмите кнопку воспроизведения или F5
  • Выберите процесс, начатый выше

Подробнее: рецепт vscode nodemon

0 голосов
/ 17 ноября 2018

nodemon прослушивает изменения файлов и перезапускает приложение на другом процессе

Таким образом, ваша конфигурация верна, но отладчик никогда не "видит" точки останова.

Нет смысла запускать режим отладки с помощью nodemon.

Это функция, которую вы можете запросить по VScode (автоматический перезапуск при изменении кода)

...