Devez-vous supprimer les appels console.log()
avant de déployer une application React Native dans les magasins? Existe-t-il des problèmes de performances ou d'autres problèmes si les appels console.log()
sont conservés dans le code?
Existe-t-il un moyen de supprimer les journaux avec un gestionnaire de tâches (de la même manière que les gestionnaires de tâches Web tels que Grunt ou Gulp)? Nous en voulons toujours pendant notre phase de développement/débogage/test, mais pas en production.
Merci!
croire que la meilleure pratique consiste à envelopper votre code de débogage dans des déclarations telles que ...
if(__DEV__){
console.log();
}
De cette façon, il ne s'exécute que lorsque vous êtes exécuté dans le conditionneur ou l'émulateur. Plus d'infos ici ... https://github.com/facebook/react-native/tree/master/packager#pathtomodulenamemapbundle-query-params
Eh bien, vous pouvez toujours faire quelque chose comme:
if (!__DEV__) {
console.log = () => {};
}
Donc, chaque console.log
serait invalidé dès que __DEV__
n'est pas vrai.
Babel transpiler peut supprimer les instructions console
avec le plugin suivant:
npm i babel-plugin-transform-remove-console --save-dev
Éditez .babelrc:
{
"env": {
"production": {
"plugins": ["transform-remove-console"]
}
}
}
Et les instructions console
sont supprimées de votre code.
J'ai trouvé ce qui suit comme étant une bonne option car il n'est pas nécessaire de se connecter même si __DEV__ === true, si vous n'êtes pas également en train de déboguer à distance.
En fait, j'ai constaté que certaines versions de RN/JavaScriptCore/etc s'arrêtaient presque lors de la journalisation (même les chaînes de caractères), ce qui n'est pas le cas du moteur V8 de Chrome.
// only true if remote debugging
const isDebuggingEnabled = (typeof atob !== 'undefined');
if (!isDebuggingEnabled) {
console.log = () => {};
}
L'utilisation de Sentry
pour le suivi des exceptions désactive automatiquement console.log
en production, mais l'utilise également pour le suivi des journaux depuis le périphérique. Ainsi, vous pouvez voir les derniers journaux dans les détails des exceptions sentry (chapelure).