📚

pnpmのminimumReleaseAgeをグローバルとプロジェクトそれぞれに設定する方法

に公開

はじめに

パッケージマネージャーのpnpmに、脆弱性のあるパッケージのインストールリスクを軽減するため、新規に公開されたバージョンのインストールを遅延させるminimumReleaseAgeが追加されました

https://pnpm.io/ja/settings#minimumreleaseage

今回は、minimumReleaseAgeをグローバルに設定する方法、プロジェクト内で設定する方法をそれぞれ紹介します

グローバルに設定する方法

以下のコマンドを実行してください
1440の部分は分数なので、任意の数字を指定してください(1440で公開から1日以上経過しているバージョンのみインストールする指定)

pnpm config set --location=global minimumReleaseAge 1440

以下のコマンドを実行し、実行結果にminimumReleaseAgeが指定した数値で設定されていれば完了です

pnpm config list --location=global

プロジェクト内で設定する方法

pnpm-workspace.yamlに以下の記述を追加してください

minimumReleaseAge: 1440

もしくはプロジェクトルートで以下のコマンドを実行してください
pnpm-workspace.yamlが作成されていない状態で実行すると、pnpm-workspace.yamlが新規作成され上記の記述が追加されます

pnpm config set --location=project minimumReleaseAge 1440

以下のコマンドを実行し、実行結果にminimumReleaseAgeが指定した数値で設定されていれば完了です

pnpm config list --location=project

まとめ

最近、npmパッケージ関連の脆弱性やサプライチェーン攻撃が話題です
minimumReleaseAgeの説明部分に「通常、悪意のあるリリースは発見後1時間以内にレジストリから削除されます」とあり、これで完全に防げるわけではないですが、インストールを一定遅らせることで少しは対策が出来るのではないかと思います
誰かの参考になれば幸いです、間違っている箇所や質問があれば気軽にコメントください

GitHubで編集を提案

Discussion