Node.jsnpmpnpm

npm から pnpm に移行した

はじめに

この記事は、 npm (または yarn)を使用しているプロジェクトを pnpm に移行するための具体的な手順を備忘録としてまとめたもの。

なぜ pnpm に移行するのか

pnpm への移行は今更感があるが実施した。 pnpm の優れている点、メリット等は様々な場所で触れられているので省略する。

今回移行を決断した理由は以下。

  • workspace を使用したかった
    • モノレポでバージョン違いのパッケージを使用したい。厳格な依存管理をしたい
    • パッケージインストールの時間が長くなった

移行手順

pnpm の install

homwbrew を使っても良いが、 今回は volta を使っている project だったので volta 経由でセットアップを行う。 Project の状態に応じてこのあたりは臨機応変に対応してほしい。

volta install pnpm

lock ファイルを移行

プロジェクトのルートディレクトリで以下のコマンドを実行。 実行後 pnpm-lock.yaml が生成されていることを確認。

pnpm import

node_modules, lock ファイル の削除

pnpm はプロジェクトルートの node_modules を参照しない。 node_modules を削除する。

rm -rf node_modules package-lock.json

パッケージのインストール

pnpm install を実行してパッケージを install する。

pnpm install

script, CI/CD の変更

package.json に記載している script を確認し移行の必要があれば変更する。 CI/CD 用の workflow ファイルの install 処理も変更する。

Ref