Как отключить console.log () на производстве и отобразить баннер? - PullRequest
0 голосов
/ 22 сентября 2018

Раньше я работал над веб-приложениями, используемыми для нашей собственной команды, и никогда не демонстрировал никаких приложений в реальном мире.Может кто-нибудь пролить свет на то, как отключить console.log() на производстве?Я видел достижения, как показано ниже:

enter image description here

enter image description here

Ответы [ 4 ]

0 голосов
/ 22 сентября 2018

Подход 1 : Вы можете сохранить console.log в своей собственной функции и удалить оригинал.

Что-то вроде:

writeConsoleLog = console.log; //save the log function in your own function
console.log = function(){} //override the original log function
console.log("Text"); //does nothing
writeConsoleLog("Text"); //mimics the console.log() and writes to the console

Aproach2: Вы можете console.log сначала выполнить все, что требуется, а затем удалить функцию журнала следующим образом:

console.log("The content you want to print"); //will write to the console
console.log = function(){} //override the log function
console.log("Text"); //now it does nothing
0 голосов
/ 22 сентября 2018

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

#myLogDiv {color: #604040; border: 1px solid gray; padding: 5pt; }
<script>
console.log = function(t) { 
    document.getElementById("myLogDiv").innerText += t + "\r\n"; 
  }
</script>


<div id="myLogDiv">» My Log: <br/></div>

<p>This is normal content</p>

<script>
console.log("hello");
</script>

<p>Other content...</p>

<script>
console.log("world!");
</script>
0 голосов
/ 22 сентября 2018

Используете ли вы какой-нибудь модуль-упаковщик?В веб-пакете у вас есть опция drop_console в билде.Что делает drop console, так это удаляет все операторы console.log из вашего кода.Существует также модуль npm для того же, пожалуйста, посмотрите.https://www.npmjs.com/package/babel-plugin-transform-remove-console Это плагин для бублика, и если у вас есть настройка babel, вы можете использовать его.

Если все это не соответствует вашим требованиям.Вы можете просто переопределить оператор console.log или использовать собственный регистратор, как предлагали другие ответы.

0 голосов
/ 22 сентября 2018
var DEBUG = false;
if(!DEBUG){
  if(!window.console) window.console = {};
  var methods = ["log", "debug", "warn", "info"];
  for(var i=0;i<methods.length;i++){
      console[methods[i]] = function(){};
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...