コンソールを無効にする最も簡単な方法.角度で生産ビルドのログ?


私は別の開発者と動作し、ほとんどのコンソールに依存します.log ()やその他の開発用のコンソールメソッドです.開発中にデバッグにさまざまな値を印刷するためにコンソールを使用します.私はこのアプローチコンソール駆動開発を呼び出します.涼しい名前、右?
これらのコンソール機能は、ユーザーがブラウザコンソールで印刷される多くのものを見ることができるので、生産において圧倒的になります.時々、開発者は潜在的なセキュリティリスクを引き起こす可能性のあるコンソール上で重要な何かを残すことができます.
それで、我々は作品にコンソールを持っていてはいけません.このようなプロダクションでコンソールを無効にする方法は様々です.
Logger のようなライブラリを使用することによって
  • コードがコンソール機能を含んでいるなら、ビルドは
  • に失敗します
  • またはあなたのためにこのタスクを実行する単純なサービスを書いています.
  • このポストでは、我々はどのように我々は生産をステップバイステップでコンソールを無効にするサービスを作成することができます参照してください.
    プロジェクトにサービスを追加します.私はそれをConsoleToOgleserviceと呼びます.サービスでは、すべてのコンソール関数を無効にします.サービスは以下のようになります.
    import { Injectable } from '@angular/core';
    import { environment } from 'src/environments/environment';
    
    @Injectable({
      providedIn: 'root'
    })
    export class ConsoleToggleService {
    
      constructor() { 
    
      }
    
      disableConsoleInProduction(): void {
        if(environment.production){
          console.warn(`🚨 Console output is disabled on production!`);
          console.log = function():void{}; 
          console.debug = function():void{};
          console.warn = function():void{};
          console.info = function():void{};
        }
      }
    }
    
    
    このサービスでは、DisableCononeInproduction ()という関数を参照できます.この関数の内部では、すべてのコンソール関数を無効にしています.これは簡単です.
    AppComponentでは、このサービスを注入し、次のようにコンストラクタで機能を呼び出します.
      constructor(private consoleToggleService : ConsoleToggleService){
    
        this.consoleToggleService.disableConsoleInProduction();
    
      }
    
    
    プロダクション用のアプリケーションをビルドすると、コンソールはありません.しかし、開発コンソールはいつものように動作します.
    私は、あなたがこのポスト役に立つと思います.読書ありがとう.