Cum de a depana JavaScript de la distanță cu Vorlon.js

Recent, la // BUILD / 2015 am anunțat Vorlon.js - un instrument open source, extensibil, platformă-agnostic pentru depanarea și testarea de la distanță a JavaScript. Am avut oportunitatea de a crea Vorlon.js cu ajutorul unor ingineri talentați și a evangheliștilor tehnici de la Microsoft (aceiași băieți care ți-au adus Babylon.js).

Vorlon.js este alimentat de Node.js, Socket.IO și de cafea târziu-noapte. Aș dori să vă împărtășesc de ce am făcut-o și cum să o încorporăm în propriul flux de lucru de testare, precum și să împărtășim câteva detalii despre arta construirii unei biblioteci JavaScript ca aceasta.

De ce Vorlon?

Vorlon.js vă ajută să încărcați de la distanță, să inspectați, să testați și să depanați codul JavaScript care rulează pe orice dispozitiv cu un browser web. Fie că este vorba de o consolă de jocuri, un dispozitiv mobil sau chiar de un frigider conectat la IoT, puteți conecta de la distanță până la 50 de dispozitive și executa JavaScript în fiecare sau în toate. 

Ideea este că echipele dev pot deasemenea să depaneze împreună - fiecare persoană poate scrie cod, iar rezultatele sunt vizibile pentru toți. Am avut un motto simplu în acest proiect: Nu există cod nativ, nici o dependență la un anumit browser, numai JavaScript, HTML și CSS rulează pe dispozitivele alese de dvs..

Vorlon.js în sine este un mic server web pe care îl puteți rula de pe mașina dvs. locală sau puteți instala pe un server pentru accesul echipei dvs. care servește tabloului de bord Vorlon.js (centrul de comandă) și comunică cu dispozitivele de la distanță. 

Instalarea clientului Vorlon.js în site-ul web sau în aplicația dvs. este la fel de ușor ca adăugarea unei singure etichete de script. Este, de asemenea, extensibil, astfel încât devs poate scrie plug-in-uri care adaugă caracteristici atât pentru client, cât și pentru tabloul de bord, cum ar fi detectarea funcțiilor, logarea și urmărirea excepțiilor.

De ce numele? Există de fapt două motive. Primul este pentru că sunt doar nebun despre Babylon 5 (emisiunea TV). Bazându-se pe aceasta, al doilea motiv este că Vorlonii sunt una dintre cele mai înțelepte și mai vechi rase din univers și astfel sunt ajutați ca diplomați între rasele mai tinere. Ajutorul lor este ceea ce ne-a inspirat: pentru distribuitorii web, este încă prea greu să scriem JavaScript care funcționează în mod credibil în diferite dispozitive și browsere. Vorlon.js încearcă să facă ceva mai ușor.

Ați menționat Vorlon.js are plug-in-uri?

Vorlon.js a fost proiectat astfel încât să puteți extinde ușor tabloul de bord și aplicația clientului scriind sau instalând pluginuri suplimentare. Puteți redimensiona sau adăuga ferestre suplimentare în tabloul de bord, care pot comunica bidirecțional cu aplicația client. Există trei plugin-uri pentru a începe cu:

Consolă

Înregistrarea: fila consola va transmite consola de mesaje de la client la tabloul de bord pe care îl puteți utiliza pentru depanare. Orice s-au conectat console.log (), console.warn () sau console.error () va apărea în tabloul de bord. Ca Instrumentul F12 Dev DOM explorer, puteți vedea arborele DOM, selectați un nod (care va fi evidențiat pe dispozitiv și va actualiza sau adăuga proprietăți CSS noi).

Interactivitate: De asemenea, puteți interacționa cu pagina Web la distanță prin tastarea codului în intrare. Codul introdus va fi evaluat în contextul paginii.

DOM Explorer

Inspectorul DOM vă arată DOM-ul paginii Web la distanță. Puteți inspecta DOM, faceți clic pe noduri pentru a le evidenția în pagina web gazdă, iar dacă selectați unul, puteți vizualiza și modifica proprietățile CSS.

Modernizr

Fila Modernizr vă va arăta caracteristicile browserului acceptate, așa cum au fost raportate de Modernizr. Puteți utiliza aceasta pentru a determina ce caracteristici sunt disponibile. Acest lucru ar putea fi util în special pe dispozitive mobile neobișnuite sau pe jocuri cum ar fi consolele de jocuri.

Cum îl folosesc?

Din linia de comandă a nodului, executați doar acest lucru:

$ npm i -g vorlon $ vorlon

Acum aveți un server care rulează pe localhost pe portul 1337. Pentru a avea acces la tabloul de bord, trebuie doar să navigați la http: // localhost: 1337 / dashboard / SESSIONID, unde SESIUNE ID este ID-ul pentru sesiunea curentă de tablou de bord. Acesta poate fi orice șir doriți.

Apoi trebuie să adăugați o singură referință în proiectul dvs. client:

Vă rugăm să rețineți că SESIUNE ID poate fi omisă și în acest caz va fi înlocuită automat cu "implicit". 

Si asta e! Acum, clientul dvs. va trimite fără întârziere informații de depanare la tabloul de bord. Să aruncăm o privire la un exemplu folosind un site real. 

Debugging Babylonjs.com folosind Vorlon.js

Să folosim http://www.babylonjs.com/ pentru exemplul nostru. În primul rând, trebuie să lansez serverul meu (folosind nodul start.js în interiorul /Server pliant). Apoi, trebuie doar să adaug această linie la site-ul clientului meu:

 

Pentru că eu nu definesc a SESIUNE ID, Pot să mă duc la http: // localhost: 1337 / tabloul de bord. Tabloul de bord arată astfel:

Notă marginală: Browserul afișat mai sus este Microsoft Edge (cunoscut anterior ca Project Spartan), noul browser Microsoft pentru Windows 10. De asemenea, puteți testa aplicațiile web pentru el de la distanță pe dispozitivul dvs. Mac, iOS, Android sau Windows @ http: // dev .modern.ie /. Sau încercați și Vorlon.js.

Înapoi la aceasta: pot vedea mesaje de consolă, de exemplu, ceea ce este util atunci când depanesc Babylon.js pe dispozitive mobile (cum ar fi iOS, Android sau Windows Phone). Pot să dau clic pe orice nod din DOM Explorer pentru a obține informații despre proprietățile CSS:

 Pe partea clientului, nodul selectat este evidențiat cu o margine roșie:

În plus, pot trece la Modernizr pentru a vedea capabilitățile dispozitivului meu specific:

În partea stângă, puteți vedea lista clienților conectați în prezent și puteți utiliza funcția Identificați un client pentru a afișa un număr pe fiecare dispozitiv conectat.

Un pic mai mult despre modul în care am construit Vorlon.js

De la început, am vrut să fim siguri că Vorlon.js rămâne așa pentru dispozitive mobile mai întâi și platformă-agnostic pe cat posibil. Deci, am decis să folosim tehnologie open source care a funcționat în mai multe medii.

Mediul nostru dev a fost Visual Studio Community, pe care îl puteți obține gratuit acum. Am folosit instrumentele Node.js pentru Visual Studio și Azure pentru back-end. Partea frontală a fost JavaScript și TypeScript. Dacă nu sunteți familiarizați cu tipul de tipScript, puteți afla de ce am construit Babylon.js cu acesta în această postare pe blog. Recent, Angular 2 a fost construit cu TypeScript. Dar nu trebuie să știi să folosești Vorlon.js.

Iată o schemă globală a modului în care funcționează:

 Iată părțile pe care le-am construit:

  • Un server Node.js găzduiește o pagină a tabloului de bord (deservită utilizând Express) și un serviciu.
  • Serviciul utilizează Socket.IO pentru a stabili o conexiune directă atât cu tabloul de bord, cât și cu diferite dispozitive.
  • Dispozitivele trebuie să facă referire la o pagină Vorlon.js simplă oferită de server. Acesta conține codul de client al tuturor pluginurilor care interacționează cu dispozitivul client și comunică cu tabloul de bord prin server.
  • Fiecare plug-in este împărțit în două părți:
    • partea clientului, utilizată pentru a capta informații și pentru a interacționa cu dispozitivul
    • partea de bord, utilizată pentru a genera un panou de comandă pentru pluginul din interiorul tabloului de bord

De exemplu, pluginul consolei funcționează astfel:

  • Partea clientului generează un cârlig deasupra console.log (), console.warn () sau console.error (). Acest cârlig este utilizat pentru a trimite parametrii acestor funcții pe tabloul de bord. De asemenea, poate primi comenzi de la tabloul de bord pe care le va evalua.
  • Partea tabloului de bord adună acești parametri și le afișează pe tabloul de bord.

Rezultatul este pur și simplu o consolă la distanță:

Puteți obține o înțelegere și mai bună a extensibilității Vorlon.js, inclusiv a modului de a construi propriile plug-in-uri, pe site-ul Vorlon.js.

Ce urmeaza?

Vorlon.js este construit pe ideea de extensibilitate. Vă încurajăm să contribuiți! Și ne gândim deja la modul în care ar putea fi integrat Vorlon.js în instrumentele de browser de browser, precum și în depanarea Web Audio.

Dacă doriți să o încercați, sunteți la doar un clic distanță: vorlonjs.com. Și mai multe documente tehnice sunt pe GitHub-ul nostru.

Mai multe mâini cu JavaScript

S-ar putea să vă surprindă puțin, dar Microsoft are o grămadă de învățare gratuită pe multe subiecte JavaScript open source și suntem într-o misiune de a crea mult mai mult cu Microsoft Edge. Check out-ul meu:

  • Introducere în WebGL 3D cu HTML5 și Babylon.JS
  • Construirea unei aplicații cu o singură pagină cu ASP.NET și AngularJS
  • Cutting Edge Graphics în HTML

Sau seria de învățare a echipei noastre:

  • Sfaturi practice de performanță pentru a vă face HTML / JavaScript mai rapid (o serie de șapte părți de la design receptiv la jocuri casual la optimizarea performanțelor)
  • Platforma Modernă de Platformă Web Jump Start (fundamentele HTML, CSS și JS)
  • Dezvoltarea aplicației Windows Universal cu cod HTML și JavaScript Jump Start (utilizați JS pe care l-ați creat deja pentru a crea o aplicație)

Și câteva instrumente gratuite: Visual Studio Community, Azure Trial și instrumente de testare cross-browser pentru Mac, Linux sau Windows.

Acest articol face parte din seriile de tehnologie web dev din Microsoft. Suntem încântați să împărtășim Microsoft Edge și noul EdgeHTML motor de randare cu tine. Obțineți mașini virtuale gratuite sau testați de la distanță pe dispozitivele Mac, iOS, Android sau Windows @ http://dev.modern.ie/.

Cod