🐕

npm yarn pnpmをもう迷わないために

2022/03/22に公開

こんな悩みを抱えたエンジニアへ

  • yarnのプロジェクトでpackage-lock.jsonがコミットされている
  • コマンド覚えるのが億劫でpnpmのプロジェクトでこっそりyarnを使ってる
  • yarn使ってるのにnpxを使ってる
  • さまざまなパッケージマネージャーでグローバルインストール(-g)しちゃってる

無限に出てきます。これら操作を共通化する便利ツールの紹介です。

解決策 @antfu/ni を使おう

https://github.com/antfu/ni

npm i -g @antfu/ni

これをインストールさえしちゃえばもう迷うことはありません。
仕組みは簡単で、プロジェクトのロックファイル(yarn.lock, package-lock.json, pnpm-lock.yaml)をみて判断しています。

ni react # 妥当なパッケージマネージャーでインストール
ni -g firebase-tools # グローバルインストール

nr build # ビルド
nr # 利用可能なスクリプト一覧(最強!)
nr - # 直前のスクリプト実行

nx gh-pages -d storybook-static #npx, yarn dlx, pnpm dlxを実行

デフォルトのパッケージマネージャーを指定する

ロックファイルがない場合にpnpmを利用する例です。
グローバルインストールするときに使うので設定しておくといいでしょう。

; ~/.nirc

; fallback when no lock found
defaultAgent=pnpm

; for global installs
globalAgent=pnpm

まとめ

コマンドエイリアスとしても便利なので使ってない人はぜひお試しください。
感想等お待ちしております。

Discussion