#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() в различных обработчиках исключений, чтобы вы знали, когда возникают неожиданные (хотя и обработанные) исключения.