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 だと分かります。
1 |
npm outdated |
③ package.jsonを更新
package.json を開き、該当のライブラリのバージョンを書き換えます。
バグフィックスがあったときに対応できるように、キャレットを使って、バージョンを書きましょう。
キャレットを使ってバージョンを書くと、最新版があった場合、最新版を取得してくれます。
【修正前】
【修正後】
このとき、package-lock.jsonを編集しないように注意してくださいね。
「package.jsonと、package-lock.jsonって何が違うの?」
と思った方は、この下をお読みください。
わたしも最初、「なぜ2つファイルが必要なんだろう?」と思いましたが、この理由を知って、納得しました。
結構重要なポイントです!
④ npm install と npm run dev 再実行
ライブラリのバージョンを修正したら、再度 npm installを実行します。
となったら、npm run dev を実行して、インストールを完了します。
豆知識:ひとことメモ
package.jsonは、使いたいライブラリのバージョンをまとめたファイルです。
このpackage.jsonファイルの情報を元に、システム側では必要なライブラリを入れていきます。
そして実際にインストールされたライブラリのリストがpackage-lock.jsonとなります。
package-lock.jsonには、インストールされたインストールのバージョンが記されています。
本番環境では、package-lock.jsonファイルの情報を使って、環境を整えます。