Im Allgemeinen ist es keine gute Idee, Protokollnachrichten in Ihrem Produktionscode verfügbar zu machen.
Idealerweise sollten Sie solche Protokollnachrichten vor der Bereitstellung mit einem Build-Skript entfernen. Aber viele (die meisten) Leute verwenden keinen Build-Prozess (einschließlich mir).
Hier ist ein kurzer Ausschnitt eines Codes, den ich in letzter Zeit verwendet habe, um dieses Dilemma zu lösen. Es behebt Fehler, die durch einen undefinierten console
im alten IE verursacht wurden, und deaktiviert die Protokollierung, wenn im "Entwicklungsmodus".
// fn to add blank (noOp) function for all console methods
var addConsoleNoOp = function (window) {
var names = ["log", "debug", "info", "warn", "error",
"assert", "dir", "dirxml", "group", "groupEnd", "time",
"timeEnd", "count", "trace", "profile", "profileEnd"],
i, l = names.length,
noOp = function () {};
window.console = {};
for (i = 0; i < l; i = i + 1) {
window.console[names[i]] = noOp;
}
};
// call addConsoleNoOp() if console is undefined or if in production
if (!window.console || !window.development_mode) {
this.addConsoleNoOp(window);
}
Ich bin mir ziemlich sicher, dass ich viel von dem oben genannten addConsoleNoOp
f'n aus einer anderen Antwort auf SO genommen habe, kann es aber momentan nicht finden. Ich werde später eine Referenz hinzufügen, wenn ich sie finde.
edit: Nicht der Beitrag, an den ich gedacht habe, aber hier ist ein ähnlicher Ansatz: https://github.com/paulmillr/console-polyfill/blob/master/index.js