2016-12-12 3 views
0

私はWebpackとReactを使用しています。 Reactと数多くのサードパーティライブラリが実装されて数週間の開発が終わった後、インスペクタのコンソールに多数の警告エラーが表示されましたが、実行中にアプリケーションに影響することはありません。マイナーと警告のコンソールログエラーをクリア/ディセーブルにする方法はありますか?

これらのエラーは、クライアント側のエラーです。

ただし、ウェブサイトが公開された場合、これらのエラーを他のユーザーに表示したくありません。

どのようにインスペクタのコンソールに警告エラーが表示されないようにするには?私はちょうどFacebookをチェックし、Facebookがインスペクタを無効にしてカスタマイズされたメッセージを表示したのを見ただけです。

JavaScriptを使用して自動的に警告メッセージがコンソールログに出力されないようにしたいだけです。

私は既にconsole.clear()を試しましたが、Firefox用にしか動作しないようです。私はよりグローバルなものが必要です。

答えて

0

まず、これらの警告を非表示にする代わりに解決する必要があります。あなたは、生産のすべての警告を非表示にする場合でも、あなたが反応の製品版を使用したり、WebPACKの構成」で生産への環境を設定する必要があります。

これはDefinePluginプラグインを使用することにより可能である。このプラグインはありません基本的に何をコンソールに印刷エラーからリアクト停止するproductionprocess.env.NODE_ENVのすべてのインスタンスを置き換えることです。

plugins: [ 
     new webpack.optimize.OccurenceOrderPlugin(), 
     new webpack.DefinePlugin({ 
     'process.env.NODE_ENV': '"production"', 
     }), 
     new webpack.optimize.UglifyJsPlugin({ compress: {warnings: false} }), 
     new webpack.optimize.DedupePlugin(), 
    ], 
ここ

我々はまた、当社のライブラリ内のすべてのコードを取り除くためにUglifyJsPluginを使用している。内部のデッドコードの例反応ライブラリー:

if (process.env.NODE_ENV == 'development') { 
    console.warning('...') 
} 

process.env.NODE_ENVからproductionに設定されているので、そのコードは実行されず、ビルドから完全に削除することができます。

+0

'process.env.NODE_ENV'が' 'development''に設定されている場合、OPで使用されているすべてのライブラリがログエラーだけを使用していることを確認してください。 –

+0

Reactはこの規格に準拠しており、他のすべてのReactライブラリがこの規格に準拠しています。 – bman

1

consoleのメソッドを上書きして、ノーオペレーションにすることができます。他のコードの前にこのコードを実行するようにしてください。

console.log = console.warn = console.error =() => {}; 
 

 
// Look ma, no error! 
 
console.error('Something bad happened.');

しかし、その代わりに、それらを隠して、これらのエラーを修正する方が良いでしょう。すべてが正常に動作しているように見える場合でも、いくつかの特定の条件でのみ表示されるバグがあるかもしれません。

+0

これは本当に悪い考えです。これらの方法のいずれかを使用することをやめます。 – bman

+0

@bmanはい、それはOPが求めていたものです。 –

+0

実際にはありません!彼が本当に必要とするのは、警告を黙らせることです。それらを沈黙させる適切な方法については私の答えを見てください。 – bman

関連する問題