Article d'origine - "
Comment déboguer javascript dans Chrome rapidement et facilement ."
Présentation
Dans cet article, vous apprendrez à déboguer du code JavaScript sur le front-end et le back-end à l'aide de Chrome DevTools et VS Code.
Buts
- Apprenez à déboguer frontend et Angular
- Analysez comment déboguer Node.js
Débogage frontal (JavaScript, angulaire)
Actuellement, de nombreux outils comme Chrome DevTools et Firefox Developer Tools prennent en charge le débogage frontal. Bien que ces deux navigateurs soient les plus populaires, d'autres navigateurs ont également leurs propres outils. Prenons Chrome DevTools pour notre aventure d'élimination des bogues.
Débogage de JavaScript
Soyons honnĂȘtes, le dĂ©bogage peut parfois prendre beaucoup de temps. Surtout, si des commandes simples telles que console.log () ou window.alert ().
Vous devez Ă©crire puis supprimer du code supplĂ©mentaire et, parfois, vous pouvez mĂȘme valider du code qui inclut ces mĂ©thodes (mĂȘme si vous pensiez les avoir supprimĂ©es). Mais s'il y a des linters configurĂ©s, les mĂ©thodes de console ou d'alerte seront mises en Ă©vidence dans le code.
C'est à ce moment que Chrome DevTools arrive sur scÚne avec une noble mission de déboguer du code sans ces instruments fastidieux. Parmi ses autres avantages, l'édition CSS et HTML, tester le réseau et la vitesse du site sont nos préférés.
CrĂ©ons une page Web simple avec la mĂ©thode JavaScript getData () qui collecte simplement les donnĂ©es du champ de saisie de nom, crĂ©e un nĆud DOM avec l'ID dataSpan, puis ajoute la valeur du champ de saisie Ă cet Ă©lĂ©ment DOM.
Voici Ă quoi ressemblera notre page:
En HTML:
En JavaScript:
Enregistrons-le sous le nom
app.j.VoilĂ comment la page apparaĂźtra dans le navigateur:

Pour examiner le fonctionnement de la méthode avant de la stocker dans
dataSpan , nous pouvons utiliser l'ancienne
console.log (data) ou
window.alert (data) . Voici ce que nous verrons lors du lancement du fichier dans VS Code:

C'est cependant l'approche la plus primitive.
Donc, Ă la place, nous utiliserons Chrome DevTools et vĂ©rifierons que tout fonctionne comme prĂ©vu avec des points d'arrĂȘt.
Le point d'arrĂȘt est simplement une ligne de code Ă laquelle nous voulons arrĂȘter d'exĂ©cuter du code pour examiner comment cela fonctionne (ou ne fonctionne pas) avec prĂ©cision.
De retour sur la bonne voie, lançons la page dans Google Chrome et:
- Pour ouvrir les outils de développement Chrome, dans le coin supérieur droit du navigateur, cliquez pour ouvrir le menu Personnaliser et contrÎler Google Chrome.
- Dans le menu, sélectionnez Plus d'outils, puis sélectionnez Outils de développeur.
Alternativement, nous pouvons utiliser le raccourci clavier
Ctrl + Maj + I (nous préférons cette approche, mais cela dépend de vous).

Une fois que nous y sommes, arrĂȘtons le code Ă un point d'arrĂȘt:
- Une fois Chrome DevTools lancé, sélectionnez l'onglet Sources.
- Dans le volet Sources, en mode Page, sélectionnez app.js (le fichier JavaScript que nous avons créé précédemment).
- Dans le volet Ăditeur, Ă gauche de let data = document.getElementById ('name'). Value; ligne de code, cliquez sur le numĂ©ro de ligne 3.
Avec cela en place, nous allons dĂ©finir un point d'arrĂȘt de ligne de code, qui est bien mis en Ă©vidence en bleu afin que nous puissions voir exactement oĂč nous l'avons dĂ©fini. Notez Ă©galement que le nom de la variable sĂ©lectionnĂ©e s'ajoute automatiquement Ă la section Points d'arrĂȘt> Local, dans le volet DĂ©bogage JavaScript.
Gestion des incréments auxquels la fonction est exécutée
La dĂ©finition d'un point d'arrĂȘt signifie que la fonction arrĂȘtera l'exĂ©cution sur ce point d'arrĂȘt. Nous devons ensuite activer l'exĂ©cution du code ligne par ligne pour inspecter les modifications de notre variable.
En haut Ă gauche du volet DĂ©bogage JavaScript se trouvent les commandes de base de l'exĂ©cution des points d'arrĂȘt:

Le premier, le bouton
Reprendre l'exĂ©cution du script continuera l'exĂ©cution du code jusqu'Ă la fin du code ou jusqu'au prochain point d'arrĂȘt.
Entrons dans le monde bonjour dans notre champ de nom. La ligne s'agrandira avec data = "hello world". Maintenant, cliquons
sur le bouton d'
appel de fonction suivant .

La ligne de point d'arrĂȘt sĂ©lectionnĂ©e est exĂ©cutĂ©e et le dĂ©bogueur sĂ©lectionne la suivante. DĂ©veloppez le volet Ătendue pour voir la valeur de la variable de donnĂ©es. Il est devenu «bonjour le monde», dans lequel nous avons prĂ©cĂ©demment entrĂ©. Il affiche simplement notre variable sur une ligne de code spĂ©cifique. Cliquez Ă nouveau sur Passez sur l'appel de fonction suivant pour exĂ©cuter la mĂ©thode sĂ©lectionnĂ©e et passez Ă la ligne suivante.
Si vous actualisez la page, la valeur de la variable out sera mise à jour vers l'élément DOM. à gauche de la variable, vous pouvez cliquer sur l'icÎne Développer () pour afficher sa valeur. Si vous cliquez sur Passer au-dessus de l'appel de fonction suivant, dans le navigateur, le texte «Bonjour tout le monde» sera à nouveau ajouté au dataSpan.
Débogage plus complexe
Disons que nous voulons exécuter une fonction plus compliquée qui nécessite définitivement un débogage. Par exemple, nous voulons que les utilisateurs entrent des nombres séparés par des espaces. La fonction évaluera et produira ensuite ces nombres, leur somme et le résultat de la multiplication (produit).

à cet effet, nous allons modifier notre app.js pour ressembler à la capture d'écran ci-dessus. Rafraßchissons la page et faisons un débogage:

- Cliquez sur 3, le numĂ©ro de ligne de let data = document.getElementById ('name'). Value;, pour dĂ©finir un point d'arrĂȘt.
- Dans le navigateur, entrez 23 24 e dans le champ de saisie. Ici, nous ajoutons intentionnellement des chiffres et une lettre pour provoquer une erreur - ceux-ci ne peuvent pas ĂȘtre ajoutĂ©s ou multipliĂ©s.
- Cliquez sur Passer au-dessus de l'appel de fonction suivant.
Sur la capture d'écran, nous pouvons voir que la somme et le produit ont une valeur NaN (pas un nombre). Cela indique que nous devons corriger notre code immédiatement.
Une autre façon de dĂ©finir des points d'arrĂȘt
Dans la majoritĂ© des cas, votre code est beaucoup plus long et peut-ĂȘtre concatĂ©nĂ© en une seule ligne. Par exemple, supposons que nous avons 1000 lignes de code. Dans ce cas, dĂ©finir des points d'arrĂȘt en cliquant sur les numĂ©ros de ligne Ă chaque fois semble assez irrĂ©aliste, n'est-ce pas?
Ă cette fin, DevTools propose un excellent outil pour dĂ©finir des points d'arrĂȘt sur les Ă©vĂ©nements qui se produisent lors de l'interaction avec le navigateur. Dans le volet DĂ©bogage JavaScript, cliquez sur Points d'arrĂȘt du rĂ©cepteur d'Ă©vĂ©nements pour le dĂ©velopper avec des catĂ©gories d'Ă©vĂ©nements.

Comme vous pouvez le voir, nous avons dĂ©fini un point d'arrĂȘt sur l'Ă©vĂ©nement
Souris> clic n'importe oĂč dans notre code. Ainsi, sans avoir besoin d'ajouter manuellement un point d'arrĂȘt, lorsque vous cliquez sur le bouton
Get Input Data , l'exécution sera suspendue sur cet événement
onclick .

Cliquer sur Passer au-dessus du prochain appel de fonction nous guidera séquentiellement à travers le code utilisé pour traiter l'action de clic.
Via les points d'arrĂȘt de l'Ă©couteur d'Ă©vĂ©nements, vous pouvez dĂ©finir des points d'arrĂȘt pour une variĂ©tĂ© de types d'Ă©vĂ©nements tels que Clavier, Touch et XHR.
Le mot-clé «débogueur»
Lorsque vous tapez le mot clĂ© du dĂ©bogueur n'importe oĂč dans votre code, Chrome DevTools suspendra l'exĂ©cution sur cette ligne et le mettra en surbrillance de maniĂšre similaire aux points d'arrĂȘt. Vous pouvez utiliser cet instrument pour dĂ©boguer JavaScript dans Chrome ou d'autres navigateurs. N'oubliez pas de supprimer le mot du code lorsque vous avez terminĂ©.

Le code de la capture d'Ă©cran ci-dessus sera mis en pause sur la ligne contenant le mot dĂ©bogueur et lancera Chrome DevTools. Cela revient Ă dĂ©finir un point d'arrĂȘt sur cette ligne de code spĂ©cifique. Vous pouvez Ă©galement gĂ©rer l'exĂ©cution du code Ă l'aide des boutons Step into next function call et Step over next function call comme nous l'avons fait auparavant.
Pour résumer
Au début, nous avons considéré console.log () et window.alert () et nous les avons trouvés pas vraiment utiles. Nous étions censés les utiliser beaucoup tout au long du code, ce qui pourrait rendre le code plus lourd et plus lent si nous oublions de supprimer ces commandes lors de la validation.
Au fur et Ă mesure que le code se dĂ©veloppe, les outils de dĂ©veloppement Chrome peuvent ĂȘtre beaucoup plus efficaces pour dĂ©tecter les bogues et Ă©valuer les performances en gĂ©nĂ©ral.
Débogage angulaire
Le moyen le plus simple de déboguer du code angulaire via Visual Studio Code (VS Code). Pour commencer le débogage, vous devrez installer l'extension du débogueur sur votre navigateur Chrome:
- Lancez VS Code avec votre projet actuel, ouvrez l'onglet Extensions. Ou appuyez sur Ctrl + Maj + X sur votre clavier.
- Saisissez Chrome dans le champ de recherche.
- Dans les résultats de la recherche, sélectionnez Débogueur pour Chrome et cliquez sur Installer.
- AprÚs avoir installé l'extension, le bouton Recharger apparaßt. Cliquez dessus pour terminer l'installation et activer le débogueur dans le navigateur.
DĂ©finition de points d'arrĂȘt
Exactement comme nous l'avons fait auparavant, dans app.component.ts, cliquez sur le numĂ©ro de ligne Ă gauche de la ligne. Le point d'arrĂȘt dĂ©fini sera indiquĂ© par une icĂŽne de cercle rouge.

Configuration du débogueur
Tout d'abord, nous devons configurer le débogueur:
- Dans l'Explorateur de fichiers, accédez à la vue Débogage. Vous pouvez également utiliser le raccourci Ctrl + Maj + D.
- Cliquez sur le bouton icÎne ParamÚtres pour créer launch.json. C'est le fichier de configuration que nous utiliserons.
- Dans la liste déroulante Sélectionner un environnement, sélectionnez Chrome. Cela créera un nouveau dossier .vscode avec le fichier launch.json dans votre projet.
- Lancez le fichier.
- Pour adapter le fichier à notre objectif, dans la méthode url, modifiez le port localhost de 8080 à 4200.
- Enregistrez les modifications. Votre fichier se présentera comme suit:

- Appuyez sur F5 sur le clavier ou cliquez sur le bouton Démarrer le débogage pour lancer le débogueur.
- Lancez Chrome.
- Actualisez la page pour suspendre le code au point d'arrĂȘt dĂ©fini.

Vous pouvez parcourir séquentiellement le code à l'aide du bouton F10 en inspectant les variables et leur modification.

Lisezmoi
L'extension Debugger pour Chrome contient de nombreuses informations sur les configurations supplémentaires, l'utilisation des sourcemaps et la résolution de divers problÚmes. Vous pouvez les visualiser directement dans VS Code en cliquant sur l'extension et en sélectionnant l'onglet Détails.

Débogage du serveur principal (Node.js)
Ici, vous découvrirez comment déboguer le code Node.js. Voici les approches les plus courantes:
- Utilisation de Chrome DevTools. Eh bien, c'est de loin notre préféré.
- Utilisation d'IDE tels que Visual Studio Code, Visual Studio, WebStorm, etc.
Nous utiliserons VS Code et Chrome DevTools Ă titre d'illustration.
Chrome et Node.js utilisent le mĂȘme moteur JavaScript, Google V8, ce qui signifie que nous pouvons utiliser les outils que nous avons utilisĂ©s pour le dĂ©bogage frontal.
Pour ce faire:
- Lancez votre projet dans VS Code.
- Accédez à l'onglet Console.
- Entrez ou collez la commande npm start --inspect et appuyez sur Entrée.
- Ignorez l'URL suggérée «chrome-devtools: // ...» (il existe une meilleure façon).

- Lancez Chrome et saisissez ou collez "about: inspect". Cela vous redirigera vers la page Appareils de DevTools.
- Cliquez sur Ouvrir l'hyperlien dédié DevTools for Node.

Le processus de dĂ©bogage est effectuĂ© de la mĂȘme maniĂšre que nous l'avons fait du cĂŽtĂ© frontal Ă l'aide de points d'arrĂȘt. C'est assez utile car vous n'avez pas besoin de passer Ă l'IDE. De cette façon, le back-end et le front-end peuvent ĂȘtre dĂ©boguĂ©s Ă l'aide de la mĂȘme interface.
Merci d'avoir lu et j'espÚre que vous avez apprécié cet article. Abonnez-vous à nos mises à jour, nous avons beaucoup plus de trucs sympas dans notre pochette :)