vite-nodeでNode.js製のCLIアプリを作る
vite-node を駆使して Viteのビルドスタックを使いながら、WebアプリではなくCLIアプリを作ってしまおうという試み。 サンプルコード
code:package.json
{
"name": "sample",
"version": "0.0.0",
"license": "MIT",
"type": "module",
"scripts": {
"cli": "vite-node ./index.ts --"
},
"dependencies": {
"cac": "^6.7.12",
"vite-node": "^0.12.1"
}
}
CLI の本体になる index.ts はこちら
code:index.ts
import cac from 'cac'
// cacを初期化
const cli = cac('sample-app')
// コマンドを定義
cli
.command('hello', 'say hello world')
.action(() => {
console.log('Hello World!')
})
// バージョンを設定
cli.version('0.0.0-sample')
// コマンドをパースして実行
cli.parse()
実行結果
code:helloを実行した場合(sh)
$ yarn run cli hello
Hello World!
code:--versionを実行した場合(sh)
$ yarn run cli --version
sample-app/0.0.0-sample linux-x64 node-v18.1.0
感想
Vite をベースとしているのでほぼ何もいらずに CLIアプリがあっという間にできた。 設定いらずなのはとてもたすかるし、めちゃくちゃ早い。