はじめに
pnpmのセットアップ方法と使い方を紹介します。
「pnpm」とは?
Node.js用のパッケージマネージャーです。
npmやyarnよりパフォーマンスに優れているとのことで、最近よく使われています。
環境
- Node.js: 24.13.1
- pnpm: 10.30.1
セットアップ
公式ドキュメントを参考に、pnpmをセットアップします。
Node.jsのインストール
まずはNode.jsをインストールします。
今回はActive LTSの最新バージョンをインストールします。
私はmiseを使ってインストールします。
グローバルにインストールする場合は --global オプションを付けてください。
$ mise use node@24.13.1
pnpmのインストール
次にpnpmをインストールします。
私はpnpmもmiseを使ってインストールします。
$ mise use pnpm@10.30.1
補完の設定
.bashrc に以下を追記し、補完が効くように設定します。
+ # pnpm
+ # ref: https://pnpm.io/completion
+ if type 'pnpm' > /dev/null 2>&1; then
+ eval "$(pnpm completion bash)"
+ fi
補完の設定(package.json)
package.json 内のスクリプトの補完を効かせるには、サードパーティ製のツールを使います。
しかしBashに対応していないので私は使っていません。
グローバル設定
このままだとグローバルで使えず、以下のエラーが発生します。
$ pnpm add -g @github/copilot@1.0.9
ERR_PNPM_NO_GLOBAL_BIN_DIR Unable to find the global bin directory
Run "pnpm setup" to create it automatically, or set the global-bin-dir setting, or the PNPM_HOME env variable. The global bin directory should be in the PATH.
エラーメッセージ通り pnpm setup を実行します。
$ pnpm setup
Copying pnpm CLI from /Users/uhooi/.local/share/mise/installs/pnpm/10.29.2/pnpm to /Users/uhooi/Library/pnpm/.tools/pnpm-exe/10.29.2/pnpm
Appended new lines to /Users/uhooi/.bashrc
Next configuration changes were made:
export PNPM_HOME="/Users/uhooi/Library/pnpm"
case ":$PATH:" in
*":$PNPM_HOME:"*) ;;
*) export PATH="$PNPM_HOME:$PATH" ;;
esac
To start using pnpm, run:
source /Users/uhooi/.bashrc
~/.bashrc に自動で追記されるので、ホームのパスだけ修正します。
# pnpm
- export PNPM_HOME="/Users/uhooi/Library/pnpm"
+ export PNPM_HOME="$HOME/Library/pnpm"
case ":$PATH:" in
*":$PNPM_HOME:"*) ;;
*) export PATH="$PNPM_HOME:$PATH" ;;
esac
#pnpm end
読み込み直したらグローバルインストールできるようになります。
$ source ~/.bashrc
$ pnpm add -g @github/copilot@1.0.9
Packages: +2
++
Progress: resolved 7, reused 2, downloaded 0, added 2, done
/Users/uhooi/Library/pnpm/global/5:
+ @github/copilot 1.0.9
Done in 2.4s using pnpm v10.29.2
pnpmでよく使うコマンド一覧
pnpmでよく使うコマンドを紹介します。
| コマンド | 説明 | 備考 |
|---|---|---|
pnpm install |
依存関係をインストールする |
npm install と同等 |
pnpm add {パッケージ} |
対象パッケージをインストールする |
npm install {パッケージ} と同等 |
pnpm add --global {パッケージ} |
対象パッケージをグローバルにインストールする |
npm install --global {パッケージ} と同等 |
pnpm add --save-dev {パッケージ} |
開発用に対象パッケージをインストールする |
npm --save-dev {パッケージ} と同等 |
pnpm remove {パッケージ} |
対象パッケージをアンインストールする |
npm uninstall {パッケージ} と同等 |
pnpm {コマンド} |
対象コマンドを実行する |
npm run {コマンド} と同等 |
依存関係とパッケージでインストールのコマンドが分かれているのと、コマンドの実行で run を付けなくていいのは、個人的に好みです。
おわりに
これでpnpmを使えるようになりました。