サプライチェーンから守るための npm , pnpm 設定

● 1 . npm設定 自身のホームフォルダ以下の .npmrc ファイルに、以下の設定を行います。

vi ~/.npmrc
# 7日経過したnpmパッケージしかインストールさせない。
min-release-age=7

● 2 . 自分自身のプロジェクト内の .npmrc に以下を設定します。

cd <プロジェクトフォルダ>
vi .npmrc
# 7日経過したnpmパッケージしかインストールさせない。
min-release-age=7

# ^1.2.3 のような範囲指定バージョンを使わず1.2.3 のように正確なバージョンで保存
save-exact=true

# postinstall など、スクリプトを実行させない
ignore-scripts=true

pnpmでの設定

# pnpm では  pnpm-workspace.yaml の minimumReleaseAge: 10080 を使用する
# pnpmでは ignore-scripts=true の代わりに pnpm-workspace.yaml の allowBuilds を使用する

pnpm-workspace.yaml

minimumReleaseAge: 10080

allowBuilds:
  sharp: true
  unrs-resolver: true

設定を確認するコマンド

npm config list

なお、min-release-age は npm v11 以降の機能のようです
https://docs.npmjs.com/cli/v11/using-npm/config#min-release-age

npmのバージョンを確認する

npm --version
11.11.0

● npm設定 .npmrc の適用の優先順位

npmには4つの設定ファイルがあり、それぞれ異なる適用範囲を持ちます

1. プロジェクト設定: /path/to/my/project/.npmrc - プロジェクト固有
2 . ユーザー設定: ~/.npmrc - ホームフォルダに配置、ユーザー全体に適用
3 . グローバル設定: $PREFIX/etc/npmrc - システム全体に適用
4 . 組み込み設定: npm自体の設定

優先順位
プロジェクト設定 > ユーザー設定 > グローバル設定 > 組み込み設定

npmの設定システムでは、各設定ファイルからすべてのパラメータが読み込まれ、 同じパラメータ名が複数存在する場合に限り、優先順位の高い設定が上書きされます。

● (pnpm設定) Globalに設定する

pnpm config set minimumReleaseAge 10080 --global

設定確認方法

minimumReleaseAge の設定値がどうなっているのかを、コマンドから表示する:

pnpm config get minimumReleaseAge

または

pnpm config list

ファイルの中身を表示して確認する

cat ~/Library/Preferences/pnpm/rc
No.2735
05/21 09:05

edit