Оригинальная ссылка:Debugging Node.js Application Using ndb
Лаборатория Google Chrome выпустила новый инструмент отладки узла, чтобы улучшить опыт разработчиков. В этой статье будет представлено всестороннее введение в инструмент узла ndb.
Те, кто знаком с узлом, могут знать, что узел всегда поддерживал безголовый инструмент отладки:
Он использует устаревший протокол, называемый протоколом отладчика V8, и не считается полнофункциональным отладчиком, а лишь некоторыми простыми проверками.
При этом в прошлом перед глазами разработчика появился новый инструмент отладки на основе протокола отладчика V8 и Blink, который позволяет нам отлаживать наше приложение узла на любом браузере ядра Webkit DevTools, да, это узел-инспектор , а его внешний вид значительно повышает эффективность отладки узловых приложений.
В версии V6.3.0 узла V8 Inspector был добавлен в качестве экспериментальной функции, которая обеспечивает очень мощный протокол отладки, а также интегрирует DevTools Chrome и поддерживает множество новых функций, таких как Blackbox, профилирование, рабочие области и исходные карты, чтобы назвать немного. Кроме того, он не зависит от устаревшего протокола отладчика V8, а напрямую основан на протоколе отладки Chrome, поэтому он может работать непосредственно в клиенте отладки, таком как браузер ядра Chromium, VCode, WebStorm и т. д. Запустить его тоже очень просто, достаточно ввести командуnode --inspect scrip.js
Вот и все.
В версии 7.20 одновременно с открытым исходным кодом был открыт новый инструмент отладки узлов под названием ndb.
Приятно иметь новые инструменты отладки узлов, но какие новые функции есть у этого нового ndb?
фон, на котором появляется ndb
Сначала прикрепите официальное определение ndb:
ndb — это улучшенный способ отладки для Node.js, поддерживаемый Chrome DevTools. (ndb — это обновление для отладки узла, Chrome DevTools изначально поддерживает ndb)
Из приведенного выше определения мы можем найти, что:
- ndb может улучшить процесс отладки
- Chrome DevTools изначально поддерживает ndb, что означает, что он использует протокол отладки Chrome, аналогичный V8 Inspector.
- ndb поддерживается Google Chrome Labs
Так что вы можете подумать, что ndb просто предоставляет обновленную версию V8 Inspector, но это не так.
Мы можем обнаружить, что есть два предварительных условия для использования V8 Inspector и Chrome DevTools: во-первых, версия узла должна быть выше 6.3.0, а во-вторых, вы должны использовать браузер с ядром Chrome или Chromium. Что, если мы не выполним эти два условия или захотим отлаживать ядро, отличное от Chromium?
Мы не упомянули, от какой среды зависит использование ndb.Puppeteer
Пакет Puppeteer — это пакет, который управляет Chromium через протокол Chrome DevTools, который предоставляет множество инкапсулированных интерфейсов.
Когда ndb устанавливает Puppeteer, в зависимостях также устанавливается последняя версия Chromium, совместимая с текущей средой.
Поскольку он устанавливается независимо, ndb не зависит от браузера операционной системы.Эта независимая от браузера функция также стала преимуществом ndb.
Но это также приносит проблему, то есть node_modules будет относительно большим, ведь в нем есть Chromium.
Итак, каков опыт отладки ndb?
исследовать ндб
Первый шаг — использовать экспресс для создания демо-приложения узла:
// app.js
const express = require('express');
const app = express();
app.get('/', (req, res) => res.send('Hello World!'));
app.listen(3000, () => console.info('Example app listening on port 3000!'));
Затем определите сценарий запуска в package.json:
"scripts": {
"start": "node app.js"
}
Как установить
Сначала мы устанавливаем ndb в глобальном окружении или локально.
npm install -g ndb
начать ндб
У нас есть несколько способов запустить ndb:
1️⃣ - Запустить файл напрямую
Мы можем запустить ndb, выполнив файл напрямую с помощью команды ndb, например:
ndb app.js
2️⃣ - запустить бинарный исполняемый файл
Иногда мы хотим использовать ndb для отладки служб, запускаемых исполняемыми двоичными файлами, такими как сценарии npm, веб-пакеты, модульные тесты и т. д.
Просто выполните следующую команду:
ndb npm start
Выше мы использовали ndb для запуска скрипта npm.Точно так же, если конфигурация правильная, мы также можем запуститьndb webpack
илиndb mocha
команда ожидания
3️⃣ - Запустить проект
Если нам просто нужно открыть службу ndb, мы можем запустить ее прямо в каталоге проекта.ndb .
чтобы открыть, эта команда позволяет нам устанавливать точки останова, редактировать файлы или что-либо еще перед выполнением скрипта.
PS: В следующих примерах мы все используем третий метод запуска, чтобы продемонстрировать
поместить точку останова
Размещение точек останова во время отладки легко
Мы можем размещать точки останова до фактической загрузки модуля.
С файлами
Используя Chrome DevTools, мы можем создавать и редактировать файлы в нашем проекте и сохранять их.
запускать npm-скрипты
Если в проекте есть какие-то npm-скрипты, их можно запустить через панель ndb
![Running an npm script]очистить и съесть.url.can/feeds_batch/ah…)
Встроенный терминал
Вы также можете напрямую получить доступ к терминалу через ndb
Blackboxing
По умолчанию ndb блокирует некоторые внешние файлы, такие как встроенные библиотеки узлов, нам не нужно заботиться об этих внешних файлах при отладке.
Панель процесса
На этой панели будут перечислены все процессы узла, запущенные в данный момент ndb. Кроме того, дочерний процесс сворачивается в родительский процесс для удобства управления и завершения.
сегмент кода
ndb поддерживает создание некоторых фрагментов кода для выполнения и отладки.
переменный доступ
Доступны текущие переменные процесса и глобальные переменные узла, ndb
Технологический еженедельник IVWEBШок в сети, обратите внимание на публичный номер: сообщество IVWEB, регулярно каждую неделю публикуйте качественные статьи.