Как отлаживать приложения Node.js?

javascript node.js debugging google-chrome-devtools

499244 просмотра

30 ответа

Как отладить серверное приложение Node.js?

Прямо сейчас я в основном использую отладку предупреждений с такими инструкциями печати:

sys.puts(sys.inspect(someVariable));

Должен быть лучший способ отладки. Я знаю, что в Google Chrome есть отладчик командной строки. Этот отладчик также доступен для Node.js?

Автор: Fabian Jakobs Источник Размещён: 17.05.2019 02:51

Ответы (30)


1218 плюса

узел-инспектор может спасти день! Используйте его из любого браузера, поддерживающего WebSocket . Точки останова, профилировщик, livecoding и т. Д. Это действительно круто.

Установите его с помощью:

npm install -g node-inspector

Затем запустите:

node-debug app.js
Автор: daralthus Размещён: 15.10.2010 05:17

696 плюса

отладка

профилирование

  1. node --prof ./app.js
  2. node --prof-process ./the-generated-log-file

Heapdumps

Flamegraphs

трассировка

логирование

Библиотеки, которые выводят отладочную информацию

Библиотеки, улучшающие информацию трассировки стека

Бенчмаркинг

Другой

наследие

Они используются для работы, но больше не поддерживаются или больше не применимы к современным версиям узлов.

Автор: balupton Размещён: 12.05.2013 09:37

230 плюса

Решение

V8 отладчик выпущен как часть Google Инструменты разработчика Chrome можно использовать для отладки скриптов Node.js. Подробное объяснение того, как это работает, можно найти в вики- сайте Node.js GitHub .

Автор: Fabian Jakobs Размещён: 29.03.2010 08:57

164 плюса

Node имеет собственный встроенный отладчик GUI начиная с версии 6.3 (с использованием Chrome DevTools)

Встроенный отладчик GUI

Просто передайте флаг инспектора, и вам будет предоставлен URL для инспектора:

node --inspect server.js

Вы также можете разбить первую строку, передав --inspect-brkвместо этого.

Чтобы открыть окно Chrome автоматически, используйте модуль inspect-process .

# install inspect-process globally
npm install -g inspect-process

# start the debugger with inspect
inspect script.js
Автор: Alister Norris Размещён: 14.09.2016 02:51

86 плюса

Node.js версии 0.3.4+ имеет встроенную поддержку отладки.

node debug script.js

Руководство: http://nodejs.org/api/debugger.html

Автор: JulianW Размещён: 16.01.2011 01:20

59 плюса

Visual Studio Code будет моим выбором для отладки. Никаких накладных расходов на установку каких-либо инструментов илиnpm installвещей. Просто установите начальную точку вашего приложения в package.json, и VSCode автоматически создаст файл конфигурации внутри вашего решения. Он построен наElectron, на котором основаны такие редакторы, как Atom.

VS Code дает такой же опыт отладки, как и в других IDE, таких как VS, Eclipse и т. Д.

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

Автор: Shreyas Размещён: 19.02.2016 10:21

53 плюса

Я лично использую JetBrains WebStorm, так как это единственная найденная мной JavaScript IDE, которая отлично подходит как для внешнего, так и для внутреннего JavaScript.

Он работает на нескольких ОС и имеет встроенную отладку Node.js (а также массу других вещей) ( http://www.jetbrains.com/webstorm/features/index.html ).

Мои единственные «вопросы» / пожелания являются были :

  1. Похоже, что на Mac больше ресурсов, чем на Windows Это больше не кажется проблемой в версии 6.
  2. Было бы неплохо, если бы он имел поддержку Snippet (например, в Sublime Text 2 - то есть наберите 'fun' и нажмите 'tab', чтобы добавить функцию. Смотрите комментарий @WickyNilliams ниже - С живыми шаблонами у вас также есть поддержка фрагментов.
Автор: isNaN1247 Размещён: 03.05.2012 02:42

37 плюса

Theseus - это проект Adobe Research, который позволяет отлаживать код Node.js в их редакторе Open Source Brackets . Он имеет некоторые интересные функции, такие как покрытие кода в реальном времени, обратная проверка, дерево асинхронных вызовов.

Скриншот

Автор: Sindre Sorhus Размещён: 14.05.2013 10:21

34 плюса

Здесь много хороших ответов, но я бы хотел добавить свою точку зрения (основываясь на том, как развивался мой подход).

Отчет об ошибках

Посмотрим правде в глаза, мы все любим хорошее, console.log('Uh oh, if you reached here, you better run.')а иногда это прекрасно работает, поэтому, если вы не решаетесь отойти слишком далеко от него, по крайней мере, добавьте в свои логи некоторые побрякушки с помощью отладки Visionmedia .

Интерактивная отладка

Как бы удобна ни была запись в журнал консоли, для профессиональной отладки вам нужно закатать рукава и застрять. Установите точки останова, пошагово просматривайте код, осмотрите области видимости и переменные, чтобы увидеть, что вызывает такое странное поведение. Как уже упоминали другие, узел-инспектор действительно является коленями. Он делает все, что вы можете делать со встроенным отладчиком, но с помощью знакомого интерфейса Chrome DevTools. Если, как и я, вы используете Webstorm , то вот вам полезное руководство по отладке.

Следы стека

По умолчанию мы не можем проследить последовательность операций в разных циклах цикла событий (тики). Чтобы обойти это, взгляните на Longjohn (но не в производстве!).

Утечки памяти

С Node.js мы можем ожидать, что процесс сервера будет работать в течение значительного времени. Что вы делаете, если думаете, что произошли некоторые неприятные утечки? Используйте heapdump и Chrome DevTools, чтобы сравнить некоторые снимки и увидеть, что меняется.


Для некоторых полезных статей, проверьте

Если вы хотите посмотреть видео,

Какой бы путь вы ни выбрали, просто убедитесь, что вы понимаете, как вы отлаживаете

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

Больно
смотреть на свои проблемы и знать,
что ты сам и никто другой не сделал это

Софокл, Аякс

Автор: Philip O'Brien Размещён: 15.09.2015 03:33

22 плюса

Инструменты Node.js для Visual Studio 2012 или 2013 включают отладчик. Обзор здесь гласит: «Инструменты Node.js для Visual Studio включают полную поддержку приложений отладки узлов». Будучи новичком в Node.js, но имея опыт работы с .NET, я обнаружил, что это дополнение является отличным способом отладки приложений Node.js.

Автор: John81 Размещён: 02.05.2014 12:30

20 плюса

Visual Studio Code имеет действительно хорошую поддержку отладки Node.js. Он бесплатный, с открытым исходным кодом и кроссплатформенный и работает на Linux, OS X и Windows.

Вы даже можете отлаживать задачи grunt и gulp , если вам нужно ...

Автор: hans Размещён: 09.09.2015 12:08

19 плюса

Я написал другой подход к отладке кода Node.js, который стабилен и чрезвычайно прост. Он доступен по адресу https://github.com/sa/iron-node .

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

Кроссплатформенный визуальный отладчик с открытым исходным кодом.

Монтаж:

npm install iron-node -g;

Debug:

iron-node yourscript.js;

Автор: Stephan Ahlf Размещён: 19.07.2015 03:10

13 плюса

Если вы используете Atom IDE , вы можете установить node-debuggerпакет.

Автор: Uchiha Itachi Размещён: 30.03.2015 04:04

10 плюса

Я создал небольшой инструмент под названием pry.js, который может вам помочь.

Поместите простое утверждение где-нибудь в коде, запустите ваш скрипт нормально, и узел остановит текущий поток, предоставляя вам доступ ко всем вашим переменным и функциям. Просмотр / редактирование / удаление их по желанию!

pry = require('pryjs')

class FizzBuzz

  run: ->
    for i in [1..100]
      output = ''
      eval(pry.it) # magic
      output += "Fizz" if i % 3 is 0
      output += "Buzz" if i % 5 is 0
      console.log output || i

  bar: ->
    10

fizz = new FizzBuzz()
fizz.run()
Автор: BlaineSch Размещён: 09.12.2014 03:22

10 плюса

Использование Chrome версии 67.0.3396.62 (+)

  1. Запустить приложение узла

узел --inspect-brk = 0.0.0.0: 9229 server.js (имя файла сервера js)

  1. Просмотрите ваше приложение в Chrome, например, "localhost: port"
  2. Откройте DevTools.
  3. Нажмите на значок узла рядом со значком адаптивного устройства.

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

Будет другое окно DevTools, которое будет появляться специально для отладки приложения узла.

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

Автор: babidi Размещён: 04.06.2018 12:21

9 плюса

В Node.js. есть встроенный клиент отладчика командной строки. В Cloud 9 IDE также есть довольно приятный (визуальный) отладчик .

Автор: yojimbo87 Размещён: 11.03.2011 07:29

9 плюса

Visual Studio Code будет работать для нас при отладке.

Автор: Surendra Parchuru Размещён: 15.10.2017 10:02

8 плюса

Я собрал короткий учебник по отладке Node.js по использованию инспектора узлов для тех, кто не знает, с чего начать.

Автор: Josh Habdas Размещён: 21.11.2013 06:31

6 плюса

Если вам нужна мощная библиотека журналов для Node.js, лучше использовать Tracer https://github.com/baryon/tracer .

Он выводит сообщения журнала с отметкой времени, именем файла, именем метода, номером строки, путем или стеком вызовов, поддерживает цветовую консоль, а также легко поддерживает базу данных, файл, транспорт потока. Я автор.

Автор: Baryon Lee Размещён: 08.03.2012 01:46

6 плюса

Предполагая, что на вашем компьютере установлен нод-инспектор (если нет, просто введите 'npm install -g node-inspector'), вам просто нужно выполнить:

node-inspector & node --debug-brk scriptFileName.js

И вставьте URI из командной строки в браузер WebKit (Chrome / Safari).

Автор: Shaheen Ghiassy Размещён: 29.04.2013 01:20

6 плюса

Используйте Webstorm! Он идеально подходит для отладки приложений Node.js. Он имеет встроенный отладчик. Проверьте документы здесь: https://www.jetbrains.com/help/webstorm/2016.1/running-and-debugging-node-js.html

Автор: OneMoreQuestion Размещён: 25.07.2016 07:13

6 плюса

Запустите процесс вашего узла с флагом --inspect .

node --inspect index.js

а затем открыть chrome://inspectв хром. Нажмите на ссылку «Открыть выделенный DevTools для узла» или установите это расширение Chrome, чтобы легко открывать Chrome DevTools.

Для получения дополнительной информации обратитесь к этой ссылке

Автор: Rahul Kumar Размещён: 09.02.2018 07:05

5 плюса

Существует новый проект Nodeclipse с открытым исходным кодом (в виде плагина Eclipse или Enide Studio ):

http://www.nodeclipse.org/img/Nodeclipse-1-debugging.png

Nodeclipse стал № 1 в топ-10 новых плагинов Eclipse на 2013 год . Он использует модифицированный отладчик V8 (из Google Chrome Developer Tools для Java).

Nodeclipse - это бесплатное программное обеспечение с открытым исходным кодом, выпускаемое в начале каждого месяца .

Автор: Paul Verest Размещён: 02.01.2014 05:24

4 плюса

IntelliJ прекрасно работает для Node.js.

Кроме того, IntelliJ хорошо поддерживает «Code Assistance».

Автор: 卢声远 Shengyuan Lu Размещён: 05.08.2015 03:34

4 плюса

NetBeans IDE была Node.js поддержки начиная с версии 8.1 :

<...>

Новая особенность

Node.js Разработка приложений

  • Мастер создания нового Node.js
  • Новый мастер Node.js Express
  • Улучшенный редактор JavaScript
  • Новая поддержка для запуска приложений Node.js
  • Новая поддержка отладки приложений Node.js.

<...>

Дополнительные ссылки:

  1. NetBeans Wiki / NewAndNoteworthyNB81 .
  2. Приложение Node.js Express в среде IDE NetBeans, Geertjan-Oracle .
Автор: Sergey Brunov Размещён: 24.11.2015 08:26

4 плюса

Есть много возможностей ...

Поддержка отладки часто реализуется с использованием протокола отладки v8 или более нового протокола отладки Chrome .

Автор: cmd Размещён: 21.01.2017 06:13

3 плюса

Быстрый и грязный способ отладки небольших скриптов Node.js с помощью вашего любимого отладчика браузера - использовать browserify . Обратите внимание, что этот подход не работает с любыми приложениями, которые требуют собственных библиотек ввода / вывода, но он достаточно хорош для большинства небольших сценариев.

$ npm install -g browserify

Теперь переместите все ваши var x = requires('x')звонки в requires.jsфайл и запустите:

$ browserify requires.js -s window -o bundle.js

(Недостатком является то, что вы должны либо переместить, либо прокомментировать requiresвсе ваши файлы.)

Включите bundle.jsв файл HTML примерно так:

<script type="text/javascript" src="bundle.js"></script>

Теперь загрузите файл в браузер и нажмите F12и отладьте в браузере.

Автор: Gerold Meisinger Размещён: 14.05.2015 06:20

2 плюса

node-debug -p 8888 scriptFileName.js
Автор: matt burns Размещён: 07.05.2014 03:53

2 плюса

Используйте эти команды

DEBUG_LEVEL=all node file.js
DEBUG=* node file.js
node file.js --inspect
Автор: Zahirul Haque Размещён: 24.03.2018 01:51
Вопросы из категории :
32x32