Смотрите блог для более связанного контентаGitHub.com/dedicated мойка…
Есть много способов отладки nodejs, вы можете прочитать эту статьюHow to Debug Node.js with the Best Tools Available, среди которых мне больше всего нравится использовать V8 Inspector и vscode.
В vscode нажмите кнопку этого паука
Вы можете увидеть боковую панель, где появляется отладка, а затем добавить конфигурацию
Выберите среду
Вы можете увидеть файл launch.json.
При запуске выберите соответствующую конфигурацию, затем щелкните зеленый треугольник, указывающий вправо
режим запуска и режим подключения
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceRoot}/index.js"
},
{
"type": "node",
"request": "attach",
"name": "Attach to Port",
"address": "localhost",
"port": 5858
}
]
}
когдаrequest
Когда он запущен, это режим запуска.Это программа, запущенная из vscode.Если это отладка, она всегда будет в режиме отладки. Режим подключения предназначен для подключения к запущенной службе. Например, если вы запустили проект снаружи и вдруг возникла необходимость отладки, вам не нужно закрывать уже запущенный проект и перезапускать его в vscode, пока вы запускаете его в режиме присоединения, vscode может подключиться к сервису, который уже начато. Когда отладка окончена, просто отключите соединение, что заведомо удобнее запуска.
Начните с npm в отладке
Много раз мы пишем длинные команды запуска и конфигурации вpackage.json
изscripts
в, например
"scripts": {
"start": "NODE_ENV=production PORT=8080 babel-node ./bin/www",
"dev": "nodemon --inspect --exec babel-node --presets env ./bin/www"
},
Мы хотим, чтобы vscode использовал npm для запуска и отладки, что требует следующей конфигурации:
{
"name": "Launch via NPM",
"type": "node",
"request": "launch",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script", "dev" //这里的dev就对应package.json中的scripts中的dev
],
"port": 9229 //这个端口是调试的端口,不是项目启动的端口
},
Начните с nodemon в отладке
Просто используйте npm для запуска, хотя вdev
В команде используется Nodemon, и программу можно нормально перезапустить, но после перезапуска отключается отладка. Поэтому вам нужно разрешить vscode использовать nodemon для запуска проекта.
{
"type": "node",
"request": "launch",
"name": "nodemon",
"runtimeExecutable": "nodemon",
"args": ["${workspaceRoot}/bin/www"],
"restart": true,
"protocol": "inspector", //相当于--inspect了
"sourceMaps": true,
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"runtimeArgs": [ //对应nodemon --inspect之后除了启动文件之外的其他配置
"--exec",
"babel-node",
"--presets",
"env"
]
},
Обратите внимание здесьruntimeArgs
, если эти конфигурации записаны наpackage.json
На словах это так
nodemon --inspect --exec babel-node --presets env ./bin/www
Это очень удобно, проект можно нормально перезапустить, а функция отладки будет включаться при каждом перезапуске.
Однако что, если мы не хотим постоянно включать функцию отладки?
Это требует использования режима подключения, упомянутого выше.
Используйте следующую команду для нормального запуска проекта
nodemon --inspect --exec babel-node --presets env ./bin/www
Когда мы хотим выполнить отладку, запустите следующую конфигурацию в отладке vscode.
{
"type": "node",
"request": "attach",
"name": "Attach to node",
"restart": true,
"port": 9229
}
Идеально!
использованная литература
я на гитхабеGitHub.com/dedicated мойка…