Firefox Debugger a evoluat intr-un lant de instrumente rapid si fiabil in ultimele cateva luni si acum accepta multe caracteristici interesante. Desi este folosit in principal pentru depanarea JavaScript-ului, stiati ca puteti utiliza si Firefox pentru depanarea aplicatiilor dvs. TypeScript?
Inainte de a intra in exemple din lumea reala, retineti ca browserele de astazi nu pot rula codul TypeScript direct. Este important sa intelegeti ca TypeScript trebuie sa fie compilat in Javascript inainte de a fi inclus intr-o pagina HTML.
De asemenea, depanarea TypeScript se face printr-o harta sursa, asa ca trebuie sa instruim compilatorul sa produca si o harta sursa.
Veti afla urmatoarele in aceasta postare:
- Compilarea TypeScript in JavaScript
- Generarea hartii sursa
- Depanare TypeScript
Sa incepem cu un exemplu TypeScript simplu.
Exemplu TypeScript
Urmatorul fragment de cod arata o pagina simpla TypeScript hello world.
// hello.ts interface Persoana {prenume: sir; prenume: sir; } function hello (person: Person) {return “Hello”, + person.firstName + “” + person.lastName; } functie sayBuna ziua () {let user = {firstName: “John”, lastName: “Doe”}; document.getElementById (“iesire”). innerText = salut (utilizator); }
TypeScript (TS) este foarte asemanator cu JavaScript si exemplul ar trebui sa fie de inteles chiar si pentru dezvoltatorii JS care nu sunt familiarizati cu TypeScript.
Pagina HTML corespunzatoare arata astfel:
// hello.html <! DOCTYPE html> <html> <head> <script src = “hello.js”> </script> </head> <body “> <button onclick =” sayHello () “> Say Hello ! </button> <div id = “output”> </div> </body> </html>
Retineti ca includem hello.js nu fisierul hello.ts in fisierul HTML. Browserul de astazi nu poate rula TS direct, asa ca trebuie sa compilam fisierul nostru hello.ts in JavaScript obisnuit.
Restul fisierului HTML ar trebui sa fie clar. Exista un buton care executa functia sayHello () si <div id = “output”> care este utilizat pentru a afisa iesirea (mesaj de salut).
Urmatorul pas este sa compilam TypeScript in JavaScript.
Compilarea TypeScript in JavaScript
Pentru a compila TypeScript in JavaScript trebuie sa aveti instalat un compilator TypeScript. Acest lucru se poate face prin NPM (Node Package Manager).
npm install -g dactiloscript
Folosind urmatoarea comanda, putem compila fisierul nostru hello.ts. Ar trebui sa produca o versiune JavaScript a fisierului cu extensia * .js.
tsc salut.ts
Pentru a produce o harta sursa care descrie relatia dintre codul original (TypeScript) si codul generat (JavaScript), trebuie sa utilizati un argument suplimentar –sourceMap. Acesta genereaza un fisier * .map corespunzator.
jovencitasxxx ver pelis eroticas
porno español creampie maduras tocandose
me follo a abuela caliente
se folla a su hermana colegialas peludas
potro de bilbao porno interactivo gratis
xxx abuelas porno español de maduras
mamasxxx se corre en el coño de su hija
videos porno gratis caseros españolas follando en la playa
michelle jenner desnuda corridas anales
incestos gays superculos
recopilacion pajas videos porno para mujeres gratis
tetonas en español le pilla pajeandose
pornovideo super maduras
viendo como se follan a mi mujer joven folla por dinero
madresxxx inazuma eleven xxx
chupadas milf camara oculta
pelisxxx monica hoyos porno
presentadoras desnudas viejas cachondas
follando en español incesto en espanol
incesto subtitulado porno casadas españolas
tsc hello.ts –sourceMap
Da, este atat de simplu.
Puteti citi mai multe despre alte optiuni ale compilatorului daca sunteti interesat.
Fisierul JS generat ar trebui sa arate astfel:
functie de intampinare (persoana) {return “Buna ziua”, + person.firstName + “” + person.lastName; } var user = {firstName: “John”, lastName: “Doe”}; functie sayHello () {document.getElementById (“output”). innerText = salut (utilizator); } // # sourceMappingURL = hello.js.map
Cel mai interesant lucru este probabil comentariul de la sfarsitul fisierului generat. Sintaxa provine din vechile timpuri Firebug si se refera la un fisier de harta sursa care contine toate informatiile despre sursa originala.
Sunteti curios cum arata fisierul harta sursa? Aici este.
{“version”: 3, “file”: “hello.js”, “sourceRoot”: “”, “sources”: [“hello.ts”], “names”: [], “mappings”: “AAKA, SAAS, OAAO, CAAC, MAAc; IAC7B, OAAO, SAAS, GAAG, MAAM, CAAC, SAAS, GAAG, GAAG, GAAG, MAAM, CAAC, QAAQ, CAAC; AAC9D, CAAC; AAED, IAAI, IAAI, GAAG; IACT, SAAS, EAAE, MAAM; IACjB, QAAQ, EAAE, KAAK; CAChB, CAAC; AAEF, SAAS, QAAQ; IACf, QAAQ, CAAC, cAAc, CAAC, QAAQ, CAAC, CAAC, SAAS, GAAG, OAAO, CAAC, IAAI, CAAC, CAAC; AAC9D, CAAC “}
Contine informatii (inclusiv locatia) despre fisierul generat (hello.js), fisierul original (hello.ts) si, cel mai important, mapari intre aceste doua. Cu aceste informatii, depanatorul stie sa interpreteze codul TypeScript chiar daca nu stie nimic despre TypeScript.
Limba originala ar putea fi orice (RUST, C ++ etc.) si cu o harta sursa adecvata, depanatorul stie ce sa faca. Nu-i asa magie?
Suntem cu totii pregatiti acum. Urmatorul pas este incarcarea micii noastre aplicatii in Debugger.
Depanare TypeScript
Experienta de depanare nu difera de modul in care ati proceda la depanarea JS standard. De fapt depanati codul JavaScript generat, dar din moment ce sursa-harta este disponibila, depanatorul stie cum sa va arate in original TypeScript.
Acest exemplu este disponibil online, deci daca rulati Firefox il puteti incerca chiar acum.
Sa incepem cu crearea unui punct de intrerupere pe linia 9 in fisierul nostru original TypeScript. Pentru a atinge punctul de intrerupere, trebuie doar sa faceti clic pe butonul Say Hello! buton introdus mai devreme.
Vezi, este TypeScript acolo!
Retineti panoul stivei de apeluri din partea dreapta, arata corect cadrele provenite din fisierul hello.ts.
Inca un lucru: daca sunteti interesat sa vedeti codul JavaScript generat, puteti utiliza meniul contextual si sariti direct in el.
Aceasta actiune ar trebui sa va orienteze catre fisierul hello.js si puteti continua depanarea din aceeasi locatie.
Puteti vedea ca arborele Surse (din partea stanga) afiseaza ambele fisiere in acelasi timp.
Harti Domenii de aplicare
Sa aruncam o privire la o alta caracteristica ingrijita care permite inspectia variabilelor atat in scopurile originale, cat si in cele generate.
Iata un exemplu de eroare mai complex.
- Incarcati https://firefox-devtools-example-babel-typescript.glitch.me/
- Deschideti DevTools Toolbox si selectati panoul Debugger
- Creati un punct de intrerupere in fisierul Webpack / src / index.tsx pe linia 45
- Punctul de intrerupere ar trebui sa intrerupa imediat executarea JS
Observati panoul Scopes din partea dreapta. Afiseaza variabilele provenite din codul generat (si, de asemenea, minificat) si nu corespunde codului original TSX (TypeScript cu JSX), ceea ce vedeti in panoul Debugger.
Exista o variabila e ciudata in loc de localeTime , care este de fapt folosita in codul sursa.
Aici este utila caracteristica scopurilor Hartii. Pentru a vedea variabilele originale (utilizate in codul TypeScript original) trebuie doar sa faceti clic pe caseta de selectare Harta.
Vedeti, panoul Scopes arata variabila localeTime acum (si da, magia provine din harta sursa).
In cele din urma, daca sunteti interesat de unde provine variabila e , sariti in locatia generata folosind meniul contextual (asa cum tocmai am facut in exemplul anterior).
Ramaneti la curent pentru mai multe functii Debugger viitoare!
Jan ‘Honza’ Odvarko
Honza lucreaza la Firefox Developer Tools
Mai multe articole ale lui Jan Honza Odvarko …








