7
votes

Meilleure pratique pour supprimer la console.log et autre code de débogage de votre version JavaScript?

J'ai vu certains des emballages de console qui arrêtent les erreurs dans le navigateur avec une console et des plus avancées qui permettent de connecter des navigateurs plus anciens. Mais aucun que j'ai vu de l'aide pour allumer et éteindre le code de débogage.

Pour le moment, je trouve une recherche et remplacez au code de débogage de commentaire. Il doit y avoir une meilleure façon?

J'utilise les COMBRES qui utilise YUI pour minifier le JavaScript. J'ai vu des messages qui mentionnent utiliser des doubles semi-colons pour marquer des lignes à supprimer dans le processus de minécution. Est-ce une bonne pratique?


4 Réponses :


2
votes

Vous devez probablement avoir votre propre wrapper autour de console.log () et enregistrer vos informations de débogage via ce wrapper. De cette façon, vous pouvez remplacer cette fonction unique avec une fonction vide une fois que vous avez déployé sur la production afin que la console ne subisse pas aux informations de débogage. Vous pouvez également remplacer la fonction réelle console.log avec une fonction vide, mais cela empêcherait tout JavaScript de la sortie de la console, pas seulement.


1 commentaires

Je suppose que le point est que les appels de console.log / wrapper sont supprimés complètement pour produire un fichier JS minifiée plus petit.



1
votes

Si vous regardez comment le framework YUI le fait, ils utilisent réellement une regex et génèrent 3 fichiers de la source. Celui qui possède la journalisation -Débourg, celui qui a la journalisation dépouillé, juste le nom du fichier et une version minifiée sans journalisation. Ensuite, vous pouvez définir une configuration globale pour dire quelle version souhaitée. J'ai travaillé de cette façon dans le passé et travaille bien.


0 commentaires

1
votes

Définissez votre propre fonction de débogage qui serait wrapper autour de console.log code> ou quoi que ce soit d'autre que vous voulez et assurez-vous que le minificateur peut facilement déduire qu'il est no-op si vous le faites vide. Après cela, une fois que vous commenciez le corps de la fonction, la plupart des minificateurs doivent détecter qu'il n'y a rien à appeler ou à enliner et à supprimer des références à votre fonction complètement.

Voici l'exemple: P>

(function(){alert("This is production code!")})();


0 commentaires

0
votes

Utilisez Y.Log () à la place, puis vous pouvez utiliser la galerie-journal-filtre pour filtrer les messages du journal que vous souhaitez voir imprimés.


0 commentaires