最近は、NPMだけでプロジェクトのスキャフォールディングができるようだ。例えば、vite〈ヴィート〉のセットアップは:
npm create vite@latest
npm create は npm init の別名〈エイリアス〉、i.e. npm create <initializer> ≡ npm init <initializer> 。npm init のマニュアルは:
- https://docs.npmjs.com/cli/v8/commands/npm-init v8 の部分は将来変わるかも。注意。
もっと細かい指定で、
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が通っている”感覚で高揚するね。