
Содержание статьи
Итон Райан

Мне нравится console.logging(stuff).
Я делаю это во всех своих программах, для целей отладки и создания функций, и просто для того, чтобы это было в сторону. Весело записывать материалы на консоль.
Я даже использую console.warn()
и console.error()
и console.table()
если я чувствую себя живым.
Мне нравятся все хорошие цвета, которые они создают на моей консоли, и иногда вы хотите, чтобы некоторые сообщения выделялись больше других.
Но вчера, глядя на свое приложение WordNerds для создания историй, я понял, что входил на консоль в рабочем режиме.
Ой-ой, спагетти-ой.
Это нет-нет. Это может замедлить код без необходимости, и, что еще более важно, это может поставить под угрозу электронные адреса моих пользователей! Я регистрировал все имена пользователей и адреса электронной почты. Не круто! Их пароли, конечно, зашифрованы, но все равно без буэна. Я бы не хотел, чтобы плохие ребята получали кучу адресов электронной почты моих пользователей и рассылали им спам.
Избавление от консольных журналов в производственном режиме
Исправить это оказалось легко. Конечно, я мог бы просмотреть кодовую базу и прокомментировать все мои console.logs(), но это было бы неприятно, а некоторые служат важным целям в режиме разработки.
К счастью, есть более простой и лучший способ.
Сначала я проконсультировался с некоторыми решениями этой проблемы, перечисленными на StackFlow, а затем в конце концов перешел к первому решению, перечисленному в этом блоге.

Как упоминалось в некоторых комментариях, когда кто-то указал это как решение проблемы: «Это хак. Ваш [sic] расходование вычислений в производстве»

Хорошая дискуссия! Я не очень беспокоился о том, чтобы несколько раз вызывать пустую функцию и потратить некоторые вычисления во время производства, поэтому я пошел с этим решением, потому что его легко реализовать и решает мою проблему.
Вот как я это сделал в файле src/index.js:

Конечно, я мог бы сделать это в любом файле, например компонент App или мой компонент StoryContainer. В любом случае, пока это было до того, как отображались журналы консоли, предупреждения или ошибки. Но мне было смысла сделать это в корне.
Я проверил это при разработке, заменив «производство» на «разработка», и это сработало! Больше никаких сообщений в консоли.
Добавление сообщений обратно в консоль
Но потом мне стало грустно: (
Нет больше сообщений на консоли? Казалось таким редким.
Может также иметь НЕКОТОРЫЕ сообщения для тех любознательных, бесстрашных ботаников, которые достаточно смелы, чтобы открыть консоль.
Поэтому я снова добавил одну, как скрытое пасхальное яйцо:

Как это я сделал? Легко: поскольку все вызовы моей программы к console.log()
, console.warn()
и console.error()
где будучи перезаписанным пустыми функциями, я просто добавил a console.info()
! В основном это то же, что а console.log()
. Некоторые отличия перечислены и обжалованы здесь.
hello everybody!
хоть было немного скучно. У меня уже было сохранено имя пользователя, который вошел в систему, в состоянии, почему бы не персонализировать мое сообщение?
И если я собираюсь персонализировать свое сообщение, почему бы не персонализировать кучу сообщений и случайным образом не возвращать одно всякий раз, когда вошедший в систему пользователь проверяет консоль? Все любят находить писанки!
Вот что я решил сделать, и вот как я это сделал:

Я воспроизводю свой компонент приветствия в своем StoryContainer, чтобы каждый раз, когда вошедший в систему пользователь решает проверить консоль, он будет видеть одно из этих дружественных сообщений!
function getFriendlyMessage(nameString) {
let messages = [
`Hello ${nameString}, it's good to see you!`,
`sup ${nameString}`,
`hi there ${nameString}, you look awesome today!`,
`hi there ${nameString}, you spectacular human being you!`,
`you look awesome today ${nameString}!`,
`hellllooooooo ${nameString}!`,
`Hey ${nameString}, how's life?`,
`Can you keep a secret, ${nameString}? You're my favorite!`,
`Nothing to see here, ${nameString}.`,
`Congratulations, ${nameString}! You've discovered the console ;)`,
`have i told you lately that i love you, ${nameString}?`,
`i knew you'd find this Easter egg eventually, ${nameString}...`,
]
var randomMessage = messages[Math.floor(Math.random() * messages.length)];
return randomMessage
}
Кодировка весело.
Спасибо, что читаете, ботаные слова!