Laravel package.jsonのライブラリ/フレームワーク群を最新のバージョンに一括で更新する

Web開発

Laravel8で作ったアプリをLaravel9にバージョンアップしました。

ついでにpackage.jsonの各種バージョンも最新に更新しました。

ここでは一括でpackage.jsonを更新する方法を紹介します。

スポンサー

やりたいこと

下記のpackage.jsonのdevDependencies内のライブラリをすべて最新バージョンにする。

一括でpackage.jsonを最新バージョンに更新

まず、npm-check-updatesというパッケージをインストールします。

npm install -g npm-check-updates

次に、

npm-check-updates -u または ncu -u

で一括更新します。

※npm-check-updatesはncuと省略可

ところが、私の環境ではエラーが発生して実行できませんでした。

npm-check-updatesでエラー発生と対処法

ncu -uを実行すると、

私の環境では下記のエラーが発生しました。

ncu : File C:\Users\〇〇〇\AppData\Roaming\npm\ncu.ps1 cannot be loaded because running scripts is disabled on this system. For more

information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.

At line:1 char:1

+ ncu -u

+ ~~~

    + CategoryInfo          : SecurityError: (:) [], PSSecurityException

    + FullyQualifiedErrorId : UnauthorizedAccess

このエラーを解決するには、Powershellで下記のコマンドを実行します。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

設定が変更できたかを確認するには、

Get-ExecutionPolicy -list

を実行します。

実行結果はこちら

CurrentUserの部分が、RemoteSignedとなっていればOKです。

再度、コマンドラインでpackage.jsonと同じ階層に行き、ncu -uまたはnpm-check-updates -uを実行します。

無事に一括で最新バージョンに更新されました。

package.jsonを更新したら。

npm install

を実行して、package-lock.jsonを最新にします。

これで、最新バージョンのpackageがnode_modulesフォルダにインストールされます。

この方法でpackage.jsonおよびpackage-lock.jsonを更新する方法と、

単純にnpm updateで更新する方法では、下記のような差異があります。

左がncuを使った方法、右がnpm updateのみの方法

この結果によると、

単純にnpm updateをすると、axiosのバージョンはpackage.jsonに記載された”axios”: “^0.26.1”,のままですが、

ncuで一度、package.jsonのバージョンを”axios”: “^1.3.4”,に更新してからnpm installをすることで、axiosのバージョンがコマンド実行時の最新バージョンである1.3.4まで上がったことがわかります。