メインコンテンツまでスキップ
Version: 7.x

pnpm install

エイリアス: i

pnpm install はプロジェクトの全ての依存関係をインストールするのに使用されます。

CI 環境では、ロックファイルが存在しても更新が必要な場合はインストールは失敗します。

ワークスペース 内では、 pnpm install はプロジェクトすべての依存関係をインストールします。 この動作を無効にしたい場合は、recursive-installfalse に設定します。

TL;DR

コマンド意味
pnpm i --offlineストアからのみオフラインでインストールする
pnpm i --frozen-lockfilepnpm-lock.yaml を更新しない
pnpm i --lockfile-onlypnpm-lock.yaml のみ更新する

Options

--force

依存関係の強制再インストール: ストアで変更されたパッケージを再取得し、互換性のないバージョンの pnpm で作成されたロックファイルやモジュールディレクトリを再作成します。 Install all optionalDependencies even they don't satisfy the current environment(cpu, os, arch).

--offline

  • デフォルト: false
  • タイプ: Boolean

true の場合、pnpm はストアですでに利用可能なパッケージのみを使用します。 依存パッケージがローカルで見つからない場合、インストールは失敗します。

--prefer-offline

  • デフォルト: false
  • タイプ: Boolean

true の場合、キャッシュされたデータの失効チェックは省略されますが、存在しないデータはサーバーから要求されます。 すべてオフラインでやるように強制するには、--offline を使用します。

--prod, -P

pnpmは、環境変数NODE_ENVがproductionに設定されている場合、 devDependenciesにリストされているパッケージはインストールせず、既にインストールされている場合に限り削除します。 このフラグを指定すると、pnpm は NODE_ENV 環境変数の設定を無視して production 環境として実行します。

--dev, -D

NODE_ENVに関係なく、 devDependenciesのみがインストールされ、dependenciesは既にインストールされている場合に限り削除されます。

--no-optional

optionalDependencies をインストールしません。

--lockfile-only

  • デフォルト: false
  • タイプ: Boolean

これを使用すると、pnpm-lock.yamlpackage.json のみが更新されます。 node_modules ディレクトリには書き込まれません。

--fix-lockfile

破損した lockfile の項目を自動的に修正します。

--frozen-lockfile

  • デフォルト:
    • CI 環境以外: false
    • CI 環境: ロックファイルが存在する場合は true
  • タイプ: Boolean

true の場合、 pnpm はロックファイルを生成しません。 lockfile がマニフェストと同期しておらず、更新が必要な場合、またはロックファイルが存在しない場合は、インストールが失敗します。

この設定は、CI 環境ではデフォルトで true です。 以下のコードが CI 環境の検出に使用されています。

https://github.com/watson/ci-info/blob/44e98cebcdf4403f162195fbcf90b1f69fc6e047/index.js#L54-L61
exports.isCI = !!(
env.CI || // Travis CI, CircleCI, Cirrus CI, GitLab CI, Appveyor, CodeShip, dsari
env.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI
env.BUILD_NUMBER || // Jenkins, TeamCity
env.RUN_ID || // TaskCluster, dsari
exports.name ||
false
)

--reporter=<name>

  • デフォルト:
    • TTY 標準出力: default
    • TTY 標準出力以外: append-only
  • タイプ: default, append-only, ndjson, silent

インストールの進行状況のデバッグ情報をターミナルにログ出力するレポーターを設定できます。

  • silent - 致命的なエラーも含め、コンソールに何も出力しません。
  • default - 標準出力が TTY であるときのデフォルトのレポーターです。
  • append-only - 出力を常に最後に加えていく。 カーソル操作を行いません。
  • ndjson - 最も詳細なレポーター。 ndjson フォーマットですべてのログを出力します。

出力される情報の種類を変更したい場合は、loglevelを使用します。

--use-store-server

  • デフォルト: false
  • タイプ: Boolean

バックグラウンドでストアサーバーを起動します。 インストールが完了した後も、ストアサーバーは実行し続けます。 ストアサーバーを停止するには、 pnpm server stop を実行してください。

--shamefully-hoist

  • デフォルト: false
  • タイプ: Boolean

npmyarn で使用されるフラットなnode_modules 構造を使用します。 警告: これは非常に推奨されません。

--ignore-scripts

  • デフォルト: false
  • タイプ: Boolean

すべてのパッケージ、および依存パッケージで package.json に定義されているスクリプトを実行しません。

--filter <package_selector>

詳細についてはフィルタリングに関するドキュメントを参照してください。