NPMによるスキャフォールド

最近は、NPMだけでプロジェクトのスキャフォールディングができるようだ。例えば、vite〈ヴィート〉のセットアップは:

npm create vite@latest

npm create は npm init の別名〈エイリアス〉、i.e. npm create <initializer> ≡ npm init <initializer> 。npm init のマニュアルは:

もっと細かい指定で、

npm create vite@latest my-vue-app -- --template vue

とかも出来る。

npm init に引数が渡されると、次のような挙動同値(記号 ≡)が成立する。

  • npm init <initializer> ≡ npm exec create-<initializer>

exec すべきプログラムはNPMエコシステムから探してくるようだ。背景に確立したエコシステムがあるのがNPMの強みだな。Bower はNPM強化でオワコンになったが、 汎用スキャフォールドツール Yeoman もオワコンだな。なんでもnpmで出来てしまう。

ところで、 コマンドラインの -- --template vue 部分だが、ダブルハイフンはその後に create-<initializer> へのオプションが続くことを示す。よって、実行されるコマンドは、

  • create-vite@latest my-vue-app --template vue

ということになる。

npm exec ≡ npx は、インストールされたパッケージの ./.bin/ にある実行可能ファイルを実行してくれるが、ローカルにインストールされてないなら一時的にインストールしてから実行する。あたかも、インターネット上にある実行可能ファイルがローカルで実行される感じ。インターネット上に“PATHが通っている”感覚で高揚するね。