Node.js
npm
Node.js_2Day 15

ERR! 400 Bad Requestでnpm auditに失敗する時の対処法

tumblr_inline_nhgxxlaHT81qa4tsw.png

npm6系で npm audit を実行しようとした時に下記のようなステータスコード400のエラーが返ってくることがあります。

terminal
npm ERR! code E400
npm ERR! 400 Bad Request - POST https://registry.npmjs.org/-/npm/v1/security/audits

本記事執筆時点での最新バージョン(node@10.14.1(LTS) / npm@6.5.0)でも発生しているこの不具合は、npmコミュニティでもバグ報告されており、Kat Marchánさんも把握していると見られることから将来のアップデートによって解消することが予想されます。が、現時点では厄介な現象になっています。原因としてはnode_modules内の特定のパッケージがプライベート・フォークされたパッケージを参照していることが考えられるようです。

一時的な解決法

私の場合は以下のコマンドで再びnpm auditが実行できるようになりました。

terminal
rm package-lock.json && npm i && npm audit fix

package.jsonは残してpackage-lock.jsonだけ消すのがポイント。
誰かの役に立てば幸いです。