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で更新する方法では、下記のような差異があります。
この結果によると、
単純にnpm updateをすると、axiosのバージョンはpackage.jsonに記載された”axios”: “^0.26.1”,のままですが、
ncuで一度、package.jsonのバージョンを”axios”: “^1.3.4”,に更新してからnpm installをすることで、axiosのバージョンがコマンド実行時の最新バージョンである1.3.4まで上がったことがわかります。