Как мне отладить узел.приложения js?



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



сейчас я в основном использую alert debugging с печатью заявления, как это:



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


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

925   30  

30 ответов:

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

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

npm install -g node-inspector

запустите:

node-debug app.js

отладка

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

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

Heapdumps

Flamegraphs

трассировка

лесозаготовки

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

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

бенчмаркинг

другое

наследие

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

The V8 отладчик выпущен в составе Google Chrome Developer Tools может использоваться для отладки узла.js скрипты. Подробное объяснение как это работает можно найти в узел.JS GitHub wiki.

узел имеет свой собственный построен в GUI debugger начиная с версии 6.3 (с помощью Chrome DevTools)

Nodes builtin GUI debugger

просто передайте флаг инспектора, и вам будет предоставлен 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

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

node debug script.js

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

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

VS код дает подобный опыт отладки, как вы могли бы иметь в других IDE, как против, Затмение и т. д.

enter image description here enter image description here

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

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

мои единственные "проблемы" / элементы списка желаний areбыли:

  1. похоже, что больше ресурсов голодных на Mac, чем Windows это уже не кажется проблемой в версии 6.
  2. было бы неплохо, если бы он имел поддержку сниппета (например,Возвышенный Текст 2 - т. е. введите " fun "и нажмите "tab", чтобы ввести функцию. см. комментарий @WickyNilliams ниже-с живыми шаблонами у вас также есть поддержка фрагментов.

Тесей это проект Adobe research, который позволяет отлаживать ваш узел.JS код в Редактор с открытым исходным кодом скобки. Он имеет некоторые интересные функции, такие как покрытие кода в реальном времени, ретроактивный контроль, асинхронное дерево вызовов.

screenshot

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

Отладочный Журналы

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

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

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

стек Следы

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

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

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


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

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

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

enter image description here

Это болезненная вещь
Посмотреть на свою беду и знать
Что ты сам и никто другой этого не сделал

Софокл, Ajax

узел.JS Tools for Visual Studio 2012 или 2013 включает в себя отладчик. Обзор здесь государства "узел.JS Tools for Visual Studio включает в себя полную поддержку отладки приложений узла.". Будучи новичком в узле.js, но имея фон в .NET, я обнаружил, что это дополнение является отличным способом отладки узла.приложения на JS.

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

вы даже можете отлаживать хрюкать и глотать задачи, Если вам нужно...

Я написал другой подход к отладке узла.JS код, который является стабильным и предельно проста. Он доступен по адресу https://github.com/s-a/iron-node.

Enter image description here

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

установка:

npm install iron-node -g;

Debug:

iron-node yourscript.js;

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

Я создал аккуратный маленький инструмент под названием монтировку.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()

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

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

Я собрал короткий узел.JS debugging primer С помощью узел-инспектор для тех, кто не уверен, с чего начать.

начните процесс узла с -- inspect флаг.

node --inspect index.js

а потом открыть chrome://inspect в chrome. Нажмите на ссылку" открыть выделенные DevTools для узла " или установите этой расширение chrome для легкого открытия chrome DevTools.

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

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

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

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

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

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

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

есть новый open-source Nodeclipse проект (как плагин Eclipse или Enide Studio):

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

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

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

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

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

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

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

enter image description here

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

enter image description here

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

кроме того, IntelliJ хорошо поддерживает "помощь в коде".

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

поддержка отладки часто реализовано с помощью протокол отладки v8 или новее Протокол Отладки Chrome.

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

$ npm install -g browserify

Теперь переместите все ваши var x = requires('x') вызовы в и

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

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

включить bundle.js в HTML-файле вот так:

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

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

The NetBeans IDE имеет узел.поддержка js с версия 8.1:

<...>

Новые Функции Основные Моменты

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

  • Новый Узел.JS project wizard
  • Новый Узел.JS Express wizard
  • Расширенный Редактор JavaScript
  • новая поддержка запущенного узла.приложения на JS
  • новая поддержка для узел отладки.приложения на JS.

<...>

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

  1. NetBeans Wiki / NewAndNoteworthyNB81.
  2. узел.JS Express App в IDE NetBeans, Geertjan-Oracle.
node-debug -p 8888 scriptFileName.js

Я хотел бы использовать хороший от Walmart Labs. Он будет делать свою работу, и это очень гибкий:

var hapi = require('hapi');
var good = require('good');
var server = hapi.createServer('localhost', 5000,{});
server.route({SOME ROUTE HERE});
server.start();

var options = {
subscribers: {
    'console':               ['ops', 'request', 'log', 'error'],
    'http://localhost/logs': ['log']
    }
};
server.pack.require('good', options, function (err) {

    if (!err) {
        console.log('Plugin loaded successfully');
    }
});

Comments

    Ничего не найдено.