No que yo sepa, aunque Cierre compilador de Google le permitirá lograr algo similar si lo desea:
/** @define {boolean} */
var DEBUG_MODE = true;
var debug;
if (DEBUG_MODE) {
/** @param {...} args */
debug = function(args) { console.log.apply(console, arguments); }
} else {
/** @param {...} args */
debug = function(args) {}
}
debug('foo', {a: 5});
Si establece DEBUG_MODE
a false
(incluso se puede hacer esto en el mandamiento línea si lo desea), luego cuando las optimizaciones avanzadas estén habilitadas (debe hacer algún trabajo si desea usarlas, pero son útiles), se usará la implementación vacía de debug
, lo que provocará que las llamadas se realicen. "inline" (optimizado fuera de existencia).
Puede extender esto para tener funciones de depuración más complicadas que las de arriba (que simplemente reenvía a console.log
); por ejemplo, podría hacer uno que aceptara un argumento de función que se llama en modo de depuración y no se llama fuera del modo de depuración.
no estoy seguro de si me unedrstood su pregunta. ¿Qué minifero y por qué? – genesis
eliminar instrucciones de depuración es una expresión regular simple si los argumentos están siempre en una sola línea. No debería ser difícil hacer una búsqueda global de 'alerta' y' consola' para poder encontrar todas las llamadas al depurador. – zzzzBov
Tengo un código del que quiero eliminar comentarios y declaraciones de depuración, pero no minimizo para preservar la capacidad de depuración. No pude encontrar lo que quería, así que terminé escribiendo mi propio script de python para hacer exactamente lo que quería. Mi cerebro me dice que debería haber algo que podría hacer menos de la minificación completa, pero no lo encontré la última vez que miré. – jfriend00