📜

【Node.js】(node:12345) Warning: ...の警告を消す方法

2025/03/04に公開

忙しい人へ

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