Статьи

Как удаленно отлаживать JavaScript с помощью Vorlon.js

Недавно на // BUILD / 2015 мы объявили Vorlon.js — открытый, расширяемый, независимый от платформы инструмент для удаленной отладки и тестирования вашего JavaScript. У меня была возможность создать Vorlon.js с помощью некоторых талантливых инженеров и технических евангелистов из Microsoft (тех самых ребят, которые принесли вам Babylon.js ).

Vorlon.js работает на Node.js, Socket.IO и позднем кофе. Я хотел бы поделиться с вами, почему мы сделали это и как включить его в ваш собственный рабочий процесс тестирования, а также поделиться некоторыми подробностями об искусстве создания такой библиотеки JavaScript.

Логотип Vorlonjs

Vorlon.js помогает вам удаленно загружать, проверять, тестировать и отлаживать код JavaScript, работающий на любом устройстве с веб-браузером. Будь то игровая приставка, мобильное устройство или даже холодильник, подключенный к IoT, вы можете удаленно подключить до 50 устройств и выполнять JavaScript на каждом или на всех из них.

Идея в том, что команды разработчиков могут также отлаживать вместе — каждый может писать код, и результаты видны всем. В этом проекте у нас был простой девиз: нет нативного кода, нет зависимости от конкретного браузера, только JavaScript , HTML и CSS работают на устройствах по вашему выбору.

Vorlon.js сам по себе является небольшим веб-сервером, который вы можете запустить с локального компьютера или установить на сервере для доступа вашей команды, который обслуживает панель управления Vorlon.js (ваш командный центр) и взаимодействует с удаленными устройствами.

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

Так почему имя? На самом деле есть две причины. Во-первых, я просто без ума от Babylon 5 (телешоу). Исходя из этого, вторая причина в том, что ворлонцы являются одной из самых мудрых и древнейших рас во вселенной и, таким образом, они полезны в качестве дипломатов между молодыми расами. Их полезность вдохновляет нас: для веб-разработчиков все еще слишком сложно написать JavaScript, который надежно работает на различных устройствах и браузерах. Vorlon.js стремится сделать это немного проще.

Vorlon.js был разработан для того, чтобы вы могли легко расширить панель мониторинга и клиентское приложение, написав или установив дополнительные плагины. Вы можете изменить размер или добавить дополнительные панели на панель инструментов, которые могут двунаправленно взаимодействовать с клиентским приложением. Для начала есть три плагина:

Ведение журнала. На вкладке консоли будут передаваться консольные сообщения от клиента на панель инструментов, которую можно использовать для отладки. Все, что зарегистрировано с console.log() , console.warn() или console.error() , появится на панели инструментов. Как и исследователь DOM F12 Dev Tool , вы можете увидеть дерево DOM, выбрать узел (который будет выделен на устройстве, а также обновить или добавить новые свойства CSS).

Интерактивность: Вы также можете взаимодействовать с удаленной веб-страницей, введя код во вход. Введенный код будет оцениваться в контексте страницы.

Консольная страница

Инспектор DOM показывает вам DOM удаленной веб-страницы. Вы можете проверить DOM, щелкнув узлы, чтобы выделить их на веб-странице хоста, и если вы выберете один, вы также можете просмотреть и изменить его свойства CSS.

Страница DOM Explorer

Вкладка Modernizr покажет вам поддерживаемые функции браузера, как сообщает Modernizr . Вы можете использовать это, чтобы определить, какие функции действительно доступны. Это может быть особенно полезно на необычных мобильных устройствах или таких вещах, как игровые приставки.

Вкладка Modernizr, показывающая определение функций CSS

Из командной строки вашего узла просто выполните это:

1
2
$ npm i -g vorlon
$ vorlon

Теперь у вас есть сервер, работающий на вашем локальном хосте через порт 1337. Чтобы получить доступ к панели мониторинга, просто перейдите по адресу http: // localhost: 1337 / dashboard / SESSIONID , где SESSIONID — это идентификатор текущего сеанса панели мониторинга. Это может быть любая строка, которую вы хотите.

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

1
<script src=»http://localhost:1337/vorlon.js/SESSIONID»></script>

Обратите внимание, что SESSIONID может быть опущен, и в этом случае он будет автоматически заменен на «по умолчанию».

Вот и все! Теперь ваш клиент без проблем отправит отладочную информацию на вашу панель управления. Давайте теперь посмотрим на пример использования реального сайта.

Давайте использовать http://www.babylonjs.com/ для нашего примера. Сначала я должен запустить свой сервер (используя узел start.js внутри папки /server ). Затем мне просто нужно добавить эту строку на мой клиентский сайт:

1
<script src=»http://localhost:1337/vorlon.js»></script>

Поскольку я не определяю SESSIONID , я могу просто зайти на http: // localhost: 1337 / dashboard . Приборная панель выглядит так:

Vorlonjs приборная панель

Примечание . Обозреватель, показанный выше, — это Microsoft Edge (ранее известный как Project Spartan ), новый браузер Microsoft для Windows 10. Вы также можете удаленно протестировать свои веб-приложения на своем Mac, iOS, Android или устройстве Windows @ http: // dev.modern.ie/ . Или попробуйте Vorlon.js тоже.

Вернемся к этому: например, я вижу консольные сообщения, что полезно при отладке Babylon.js на мобильных устройствах (таких как iOS, Android или Windows Phone). Я могу нажать на любой узел в DOM Explorer, чтобы получить информацию о свойствах CSS:

DOM Explorer информация о свойствах CSS

На стороне клиента выбранный узел выделяется красной рамкой:

сторона клиента, показывающая выбранный узел, выделенный красной рамкой

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

Вкладка Modernizr, показывающая возможности моего конкретного устройства

С левой стороны вы можете увидеть список подключенных в данный момент клиентов и использовать кнопку « Определить клиента» для отображения номера на каждом подключенном устройстве.

С самого начала мы хотели быть уверены, что Vorlon.js остается максимально мобильным и независимым от платформы . Поэтому мы решили использовать технологию с открытым исходным кодом, которая работала в более широком числе сред.

Нашей средой разработки было Visual Studio Community, которое вы можете получить бесплатно прямо сейчас. Мы использовали инструменты Node.js для Visual Studio и Azure для серверной части. Нашим интерфейсом был JavaScript и TypeScript. Если вы не знакомы с TypeScript, вы можете узнать, почему мы создали Babylon.js с ним в этом сообщении в блоге . Недавно Angular 2 был построен с использованием TypeScript . Но вам не нужно знать это, чтобы использовать Vorlon.js.

Вот глобальная схема того, как это работает:

Ворлонжская архитектурная схема

Вот части, из которых мы его построили:

  • Сервер Node.js содержит страницу панели инструментов (обслуживается с помощью Express) и службу.
  • Сервис использует Socket.IO для установления прямого соединения как с приборной панелью, так и с различными устройствами.
  • Устройства должны ссылаться на простую страницу Vorlon.js, обслуживаемую сервером. Он содержит весь клиентский код плагинов, который взаимодействует с клиентским устройством и связывается с приборной панелью через сервер.
  • Каждый плагин разделен на две части:
    • на стороне клиента, используется для сбора информации и взаимодействия с устройством
    • сторона панели инструментов, используемая для создания панели команд для плагина внутри панели инструментов

Например, консольный плагин работает следующим образом:

  • Клиентская сторона генерирует хук поверх console.log() , console.warn() или console.error() . Этот хук используется для отправки параметров этих функций на панель инструментов. Он также может получать заказы со стороны панели управления, которые он будет оценивать.
  • Сторона приборной панели собирает эти параметры и отображает их на приборной панели.

В результате получается просто удаленная консоль:

Удаленная консоль

Вы можете получить еще лучшее представление о расширяемости Vorlon.js, в том числе о том, как создавать свои собственные плагины, на веб-сайте Vorlon.js .

Vorlon.js построен на идее расширяемости . Мы призываем вас внести свой вклад! И мы уже думаем о том, как интегрировать Vorlon.js в инструменты разработки браузера, а также отладку Web Audio.

Если вы хотите попробовать, вы только один клик: vorlonjs.com . И более технические документы находятся на нашем GitHub .

Это может вас немного удивить, но у Microsoft есть много бесплатных уроков по многим темам JavaScript с открытым исходным кодом, и мы стремимся создать намного больше с Microsoft Edge . Проверьте мои собственные:

Или серия обучения нашей команды:

И некоторые бесплатные инструменты: сообщество Visual Studio , пробная версия Azure и инструменты кросс-браузерного тестирования для Mac, Linux или Windows.

Эта статья является частью серии технологий веб-разработки от Microsoft. Мы рады поделиться с вами Microsoft Edge и новым механизмом рендеринга EdgeHTML . Получите бесплатные виртуальные машины или проведите удаленное тестирование на устройстве Mac, iOS, Android или Windows @ http://dev.modern.ie/ .