Laravel npm install “1 vulnerability requires semver-major dependency updates.”

LaravelとVue連携

Laravel Mixをインストールするときに、

”found 1 high severity vulnerability”

に続いて、

”1 vulnerability requires semver-major dependency updates.”

というメッセージが出た時の対策です。

npm audit fix を行っても修復されず、vulnerabilityが残った場合にお試しください。

”1 vulnerability requires semver-major dependency updates.” の意味

このメッセージを直訳すると、

「1 の脆弱性は、重大な依存関係の更新を必要とします。」

といった感じになります。

分かりやすく言うと、

「ライブラリをインストールするに伴って、関連するライブラリのバージョンを更新してね」といった意味。

修正するには、ライブラリの更新が必要になります。

”1 vulnerability requires semver-major dependency updates.” の対策

対策方法は次のとおりです。

① 修正するライブラリを確認する

アップデートすべきものは、下記のような形で、メッセージ中に表示されているかと思います。

Dependency of の後に書かれたライブラリが修正すべきライブラリとなります。

上記では “resolve-url-lader” が該当します。

② npm outdatedで最新版を確認

npm outdated というコマンドを実行すると、npmバージョンの最新版と現在のバージョンの一覧が確認できます。

ここから、”resolve-url-lader” の最新バージョンが 3.1.2 だと分かります。

③ package.jsonを更新

package.json を開き、該当のライブラリのバージョンを書き換えます。

バグフィックスがあったときに対応できるように、キャレットを使って、バージョンを書きましょう。

キャレットを使ってバージョンを書くと、最新版があった場合、最新版を取得してくれます。

【修正前】

【修正後】

このとき、package-lock.jsonを編集しないように注意してくださいね。

「package.jsonと、package-lock.jsonって何が違うの?」

と思った方は、この下をお読みください。

わたしも最初、「なぜ2つファイルが必要なんだろう?」と思いましたが、この理由を知って、納得しました。

結構重要なポイントです!

豆知識:ひとことメモ

package.jsonは、使いたいライブラリのバージョンをまとめたファイルです。

このpackage.jsonファイルの情報を元に、システム側では必要なライブラリを入れていきます。

そして実際にインストールされたライブラリのリストがpackage-lock.jsonとなります。

package-lock.jsonには、インストールされたインストールのバージョンが記されています。

本番環境では、package-lock.jsonファイルの情報を使って、環境を整えます。

④ npm install と npm run dev 再実行

ライブラリのバージョンを修正したら、再度 npm installを実行します。

found 0 vulnerabilities

となったら、npm run dev を実行して、インストールを完了します。

コメント

タイトルとURLをコピーしました