Есть ли какая-нибудь утилита, которая удалит консольные вызовы в файлах Javascript?

#javascript

#javascript

Вопрос:

Это в первую очередь для развертывания в производственной среде.

Предпочтительнее решение, которое анализирует файл JS в AST, а затем удаляет консольные вызовы, но я готов рассмотреть альтернативные варианты.

Меня особенно интересуют те, которые могут удалять вызовы console.assert.

Ответ №1:

Я справляюсь с этим двумя способами:

1) Я никогда не использую console.log() или какие-либо консольные вызовы в своем коде. Для целей отладки у меня есть свой собственный объект отладки с его собственными методами. Затем я могу управлять с помощью одной настройки, будут ли сообщения консоли отправляться на фактическую консоль отладки, переходить к моему собственному объекту textarea или ничего не делать. Таким образом, я могу включать или выключать их или перенаправлять их с помощью одной строки кода.

2) Я написал свой собственный скрипт на python, который ищет в моих файлах JS мои собственные вызовы отладки и удаляет их. Она также удаляет все комментарии, но не сворачивает файл, поэтому он по-прежнему полностью отлаживаем. Это моя «предварительная» или «бета» версия кода, которую я могу свободно выпускать в мир, и в ней легко отследить проблемы, но в коде нет всех моих комментариев и заметок. Этот конкретный скрипт на python не является универсальным, поэтому я не сделал его общедоступным, но его было нетрудно написать.

Комментарии:

1. Спасибо за ввод jfriend00, я думаю, мне нужно сделать свой собственный!

Ответ №2:

 debug = 0; if (debug) console.log();
  

также многие текстовые редакторы имеют скрытую функцию под названием «найти и заменить»

Комментарии:

1. Дело в том, что они хотят оставить консольные вызовы там для разработки, но удалять их только в процессе сборки перед развертыванием или окончательным тестированием. Это не одноразовое редактирование. Например, вы можете захотеть вызвать console.log() в различных обработчиках исключений, чтобы вы знали, когда возникают неожиданные (хотя и обработанные) исключения.