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

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

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

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

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

npm では min-release-ageの単位は day です。

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設定) 自身のホームフォルダ以下の pnpm-workspace.yaml ファイルに、以下の設定を行います。

vi ~/pnpm-workspace.yaml
# 7日経過したnpmパッケージしかインストールさせない 
minimumReleaseAge: 10080

minimumReleaseAge の単位は minutes です

設定値を確認する方法

pnpm get
No.2735
04/01 12:24

edit