Вас тоже бесит console.log на продакшене замусорившие ваше веб-приложение? Вот почему они бесят меня:

  • Это может снизить производительность
  • Это вызывает ошибки в IE8/9, когда консоль отключена
  • Люблю пустую консоль на продакшене

Итак, вот 5 способов (достоинства и недостатки каждого), как вычистить проект от всего этого ненужного хлама:

  1. 1.

    Ручками

    Плюсы:

    Console.log полностью удаляется из кода и больше не замедляет систему и не увеличивает количество кода.

    Минусы:

    Удаление вручную может быть трудоемким и раздражающим

  2. 2.

    JSLint/JSHint/ESLin

    Это на самом деле не удаляет объявления console.log, но может помочь вам определить, где они находятся.

    Плюсы:

    Это покажет вам все объявления консоли в проекте

    Можно поставить настройку вкл./выкл. в зависимости от стадии разработки (продакшн или дебаг, например)

    Минусы:

    Вам все еще придется удалять все вручную

  3. 3.

    Monkey Patching console

    Этот код позволит заменить все вхождения консоли на функцию, которая ничего не делает

    // Avoid `console` errors in browsers that lack a console.

    (function() {

    var method;

    var noop = function () {};

    var methods = [

    'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',

    'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',

    'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',

    'timeStamp', 'trace', 'warn'

    ];

    var length = methods.length;

    var console = (window.console = window.console || {});

    while (length--) {

    method = methods[length];

    // Only stub undefined methods.

    if (!console[method]) {

    console[method] = noop;

    }

    }
    }());

    Плюсы:

    Очень легко и быстро можно добавить этот код в свой проект

    Минусы:

    Объявления консоли все еще останутся в проекте, увеличится общий размер кода, а скорость его обработки уменьшится

  4. 4.

    С помощью специальных библиотек

    Проблема с консолью появилась не вчера и конечно уже созданы некоторые библиотеки для работы с этим.

    Например, отличную библиотеку написал Бен Альман, называется она JavaScript Debug.

    Плюсы:

    Обеспечивает хорошый абстрактный слой вокруг консоли, который не поддерживается во всех браузерах

    Позволяет устанавливать различные уровни отладочных сообщений

    Логирует записи журнала консоли

    Можно уставить, где показывать результаты логирования (inline, firebug lite и т.д.)

    Минусы:

    Если установить уровень отладки на 0, то все останется как прежде

  5. 5.

    С помощью UglifyJS

    Минификатор Uglify2 позволяет простой настройкой удалить все объявления консоли из продакшн-кода.

    Плюсы:

    Можно интегрировать это решение как часть процесса сборки

    Полностью удаляются все объявления консоли

    Минусы:

    Эта техника может не работать в паре с другими инструментами минификации

Write A Comment