Nuxt3のnuxtコマンドはnuxiコマンドのエイリアス
Nuxt3には専用のコマンドラインツールの nuxi
コマンドがありますが nuxt
コマンドもあり違いが良く分からなかったので調べてみました。
お急ぎの人用3行まとめ
- Nuxt3の
nuxt
コマンドはnuxi
コマンドのエイリアス - 未インストール状態で
npx
から実行する場合はnuxi
を使う nuxt
がインストールされている場合はどっちでもOK
nuxt? nuxi?
Nuxt3には専用のコマンドラインツールの nuxi
コマンドがあります。
ところが nuxi init
で生成したプロジェクトの package.json
の scripts
に記述されているコマンドを見ると nuxt
コマンドが記述されています。
触ってみた感じどっちでも良さそうな感じがするものの良くわからないのでコードを見て調べてみました。
nuxiコマンド
nuxi
コマンドのパッケージは nuxt
のリポジトリで管理されてます。
https://github.com/nuxt/nuxt/tree/main/packages/nuxi
package.json
の bin
を見ると nuxi
コマンドで bin/nuxi.mjs
が呼び出されるのが分かります。
https://github.com/nuxt/nuxt/blob/main/packages/nuxi/package.json
nuxi.mjs
の中身はビルド後の cli-wrapper.ts
が呼び出されているだけで cli-wrapper.ts
が処理の中身になってます。
https://github.com/nuxt/nuxt/blob/main/packages/nuxi/bin/nuxi.mjs
https://github.com/nuxt/nuxt/blob/main/packages/nuxi/src/cli-wrapper.ts
nuxtコマンド
nuxt
コマンドのパッケージも nuxt
のリポジトリで管理されてます。
https://github.com/nuxt/nuxt/tree/main/packages/nuxt
package.json
の bin
を見るとなんと nuxt
コマンドと nuxi
コマンドの2つが定義されており両方とも bin/nuxt.mjs
が呼び出されるのが分かります。
https://github.com/nuxt/nuxt/blob/main/packages/nuxt/package.json
nuxt.mjs
の中身は nuxi/cli
を import
しているだけです。
https://github.com/nuxt/nuxt/blob/main/packages/nuxt/bin/nuxt.mjs
呼び出されている nuxi
パッケージの package.json
の exports
を見ると nuxi/cli
で bin/nuxi.mjs
が呼び出されるようになっており nuxi
パッケージの nuxi
コマンドと同じく cli-wrapper.ts
が実行されます。
https://github.com/nuxt/nuxt/blob/main/packages/nuxi/package.json
まとめ
機能的にはどちらも同じですが未インストール環境で npx
で実行する場合はダウンロードする依存の少ない nuxi
を使ったほうが良さそうです。