Open3

pnpm の かっこいい使い方

TakashiAiharaTakashiAihara

catalog インストールをする

バージョン統一に便利な catalogs

package.json に直接記入した後に pnpm i をしていたけど、やっぱりダサい。

公式doc に明確に記載はないけど バージョンとして catalog: といった形で指定すれば動く。

pnpm --filter "*/organizer-read" i @grpc/grpc-js@catalog: nice-grpc@catalog: nice-grpc-common@catalog:

コマンド履歴にも残るし、複数 workspace へのインストールも一発。
こっちのほうが便利だよね

TakashiAiharaTakashiAihara

workspace インストールする

catalog のほうと同じく、workspace インストールも コマンドで一発。

pnpm i --filter "@users/*" --save-dev "@tools/biome@workspace:^"
TakashiAiharaTakashiAihara

スクリプトの共通化

npm でも使える TIPS
大きく2つ

オプションのチェーン

tanstack/table リポジトリでも使われているテクニック。

    "prettier": "prettier --ignore-unknown '**/*'",
    "prettier:write": "pnpm run prettier --write",

ベースとなる コマンドを定義、別のコマンドから呼び出しつつオプションを増やしていくパターン。

ただし、npm と書き方が違うので注意。

https://github.com/lukehaas/RegexHub/blob/afcf1d1b715263bbc6af1460cee40bfb7278f1da/package.json#L10

スクリプトのチェーン

ベースとなる コマンドを 複数呼び出すパターン。
よく使われているやり方

https://github.com/vuejs/apollo/blob/8a5f424e2e79655284213c6cb786e471391166cc/package.json#L11