npm モジュールのセキュリティアップデート

f:id:xlc:20190714213656p:plain:w240:right

GitHubに置いているソース脆弱性の警告を受けました。どうやら lodash に脆弱性があるようです。こういう場合、npm 6.1.0 で追加されたコマンド npm audit fix を使う事で適切にバージョンアップすることができるのですが、今回は npm auditを実行しても found 0 vulnerabilities と言われて解決できません。仕方がないので手動でモジュールをアップデートしました。*1

脆弱性のあるモジュールの確認

まず GitHub 上で脆弱性のあるモジュールを確認します。lodash の 4.17.13 以上を使えと言っています。

f:id:xlc:20190714232827p:plain

$ npm ls lodash

で現状のバージョンを確認します。4.17.11 のようです。

f:id:xlc:20190714215405p:plain

最新のモジュールをインストール

最新版の lodash をインストールします。

$ npm install lodash

バージョンが更新されましたが、ツリーのルートに lodash がインストールされてしまっています。これはよくありません。

f:id:xlc:20190714220622p:plain

node_modules/ の再構成

$ git status

で確認すると、package.jsonpackage-lock.json が更新されています。

f:id:xlc:20190714221330p:plain

package.json の修正は不要なので元に戻します。

$ git checkout -- package.json

f:id:xlc:20190714234052p:plain

node_modules/ を再構成します。

$ npm install

ツリーのルートにインストールされた lodash はなくなりました。

f:id:xlc:20190714234637p:plain

これで完成です。動作確認し、package-lock.json をコミットしましょう。

*1:GitHubの新機能の「自動的なセキュリティ修正」を使うと修正のプルリクエストが生成できるようですが、敢えて使いませんでした