📜
【Node.js】(node:12345) Warning: ...の警告を消す方法
忙しい人へ
process.emitWarning = () => {};
とりあえずこれを書けばいいです。特定の警告だけ消したい人は続きを読んでください。
本編
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
のような設定をした際に出てくる警告を抹消したいとき、あると思います。
そんな人に向けた対処法です。
1. (超簡単)全部消す
process.emitWarning = () => {};
警告メッセージを出力する関数を空にして強引に無効化します。
かなりシンプルな方法ですが、全ての警告が消えてしまいます。
2. 特定の警告のみ消す
process.on('warning', (warning) => {
if (warning.name === 'SecurityWarning' &&
warning.message.includes('NODE_TLS_REJECT_UNAUTHORIZED')) {
return;
}
console.warn(warning.name, warning.message);
});
警告メッセージが出力された際のイベントを検知し、特定の文字列(ここではNODE_TLS_REJECT_UNAUTHORIZED
となっている部分)が含まれていればreturn
して出力されないようにします。そうでなければconsole.warn
で出力。
使う場面があれば是非。
Discussion