npm audit で脆弱性をチェックしよう

npm モジュールの脆弱性を対応することはプロダクトをつくる上で非常に重要です。

npm には脆弱性をチェックする機能があります。

プロジェクトで以下のコマンドを実行します。

$ npm audit

出力の一番最後をみます。

found 4276 low severity vulnerabilities in 560 scanned packages
run `npm audit fix` to fix 4276 of them.

4276の低い重要度の脆弱性が発見されたことが分かります。

また、その下の行で npm audit fix を実行すれば、4276 の脆弱性(発見されたすべて)が修正されることが分かります。

このコマンドを実行します。

$ npm audit fix
中略
updated 1 package in 4.303s
fixed 4276 of 4276 vulnerabilities in 560 scanned packages

もう一度 npm audit を実行すると、脆弱性がなくなっていることが分かります。

$ npm audit
                                                                                
=== npm audit security report ===                        
                                                                                
found 0 vulnerabilities in 560 scanned packages

ただし、npm audit fix を実行しても自動で修正されない場合がありますので、その場合は各脆弱性ごとに対応する必要があります。

具体的には、npm audit の結果で、各モジュールごとにこういうコマンドを実行してね、という情報がレポートされるので、それに従います。