Можно ли настроить Visual Studio Code для запуска с помощью nodemon
Я установил nodemon
в качестве глобального пакета в своей системе.
Он работает, когда я выполнил nodemon
в cmd.
Но когда я использую vscode с этим launch.json
файлом, vscode генерирует это исключение:
запрос запуска: исполняемый исполняемый файл XXX\XXX\XXX\XXX\nodemon не существует
the launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "node",
"request": "launch",
"program": "app.js",
"stopOnEntry": false,
"args": [],
"cwd": ".",
"runtimeExecutable": nodemon,
"runtimeArgs": [
"--nolazy"
],
"env": {
"NODE_ENV": "development"
},
"externalConsole": false,
"preLaunchTask": "",
"sourceMaps": false,
"outDir": null
},
{
"name": "Attach",
"type": "node",
"request": "attach",
"port": 5858
}
]
}
когда я стираю нодемин в runtimeExecutable
, он отлично работает с node
Ответы
Ответ 1
Во-первых, установите nodemon как зависимость dev:
npm install --save-dev nodemon
Для более новых версий VS Code настройте свой .vscode/launch.json
следующим образом:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "nodemon",
"runtimeExecutable": "${workspaceFolder}/node_modules/nodemon/bin/nodemon.js",
"program": "${workspaceFolder}/app.js",
"restart": true,
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}]
}
Наиболее важными элементами являются свойство runtimeExecutable
которое указывает на скрипт nodemon, и свойство program
которое указывает на ваш скрипт точки входа.
Если вы используете более старый VS Code (который вы не должны), попробуйте следующую конфигурацию запуска:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch with nodemon",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/node_modules/nodemon/bin/nodemon.js",
"args": ["${workspaceRoot}/app.js"],
"runtimeArgs": ["--nolazy"]
}
]
}
Наиболее важными частями являются свойство program
которое указывает на скрипт nodemon, и свойство args
которое указывает на ваш обычный скрипт точки входа.
Ответ 2
Я не смог получить ответ @AdrianT, работая с отладчиком. Кажется, что есть более новый встроенный поддерживаемый способ сделать это:
- Откройте раскрывающийся список "Конфигурация запуска" и выберите "Добавить конфигурацию..."
- Выберите "Node.js: Настройка Nodemon"
Это добавит что-то вроде этого в ваш launch.json:
{
"type": "node",
"request": "launch",
"name": "nodemon",
"runtimeExecutable": "nodemon",
"program": "${workspaceRoot}/app.js",
"restart": true,
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
Убедитесь, что в настройках "программы" указан правильный сценарий точки входа.
Вам нужно установить nodemon глобально, чтобы заставить это работать (npm install -g nodemon) (согласно документации)
Теперь ваше приложение запускается, и вы можете устанавливать точки останова, которые будут попадать, и консоль регистрируется в окне интегрированного терминала.
Обратите внимание, что завершение сеанса отладки прекращает только отладку программы, а не сам nodemon. Чтобы завершить nodemon, нажмите Control-C на встроенном терминале.
Ответ 3
В коде Visual Studio создайте конфигурацию запуска:
{
"name": "Attach",
"type": "node",
"request": "attach",
"port": 5858,
"restart": true
}
запустите nodemon из командной строки: nodemon --debug server.js
Теперь "Прикрепить" от VC и vuala.
Ответ 4
Присоединение - это, безусловно, простой вариант. Чтобы убедиться, что ваш код разбит, убедитесь, что вы используете nodemon с помощью --inspect-brk
(node 8+), например:
nodemon --inspect-brk src/app.js
После запуска nodemon запустит порт для отладочных соединений:
Debugger listening on ws://127.0.0.1:9229/someUUID
Вы можете взять этот порт, чтобы создать конфигурацию запуска, что довольно просто:
{
"type": "node",
"request": "attach",
"name": "Attach",
"port": 9229,
"restart": true
},
Ответ 5
Нет, в настоящее время он не может. Но мне удалось получить эту работу, используя nodemon. Я начинаю его с Гранта. Но эквивалентная командная строка должна делать то же самое.
РЕДАКТИРОВАТЬ. После вечернего тестирования я могу сказать, что под подходом все еще несколько чешуйчатый: S, присоединение прерывается, а иногда точки останова игнорируются.
EDIT2. Вы также можете указать порт отладки по умолчанию в файле Gruntfile с помощью ['--debug-brk=5860']
для nodeArgs
. Мне также рекомендуется использовать --debug-brk
вместо --debug
. Возможно, это устранит текущую чешуйку. Я вернусь и расскажу об этом, если это поможет (в настоящее время я переключил проект).
В случае, если это может помочь любому, кто работает с нижеприведенными настройками в текущей версии кода VS (например, v0.10.6) в Windows 10. Но это, вероятно, будет работать и на Mac (я могу проверить позже). Но обратите внимание, что мне иногда приходится запускать восстановление, изменяя + сохранение файла до того, как отладчик подберет его.
/.vscode/launch.json
{
"configurations": [{
"name": "Launch",
"outDir": null
},{
"name": "Attach",
"type": "node",
"request": "attach",
"port": 5858
}]
}
/Gruntfile.js
nodemon : {
dev : {
script : 'launcher.js'
},
options : {
ignore : ['node_modules/**', 'Gruntfile.js'],
nodeArgs: ['--debug'],
env : { PORT : '4123'
}
}
}
Я думаю, что отладочный порт 5858 является значением по умолчанию, так как он здесь не указан (обратите внимание, что он находится в launch.json
выше).
Ответ 6
Да, вы можете! По состоянию на недавнее обновление вы можете прикрепить отладчик к запущенному процессу Nodemon. Эта страница содержит более подробную информацию. Найдите nodemon на странице, чтобы увидеть инструкции.
Ответ 7
Я использую плагин Node Exec. Он позволяет запускать и останавливать приложение Node в vcs, нажимая F8 и F9 (применяется к открытому файлу в редакторе). Это может помочь как временное решение.