c8r/genのcliのコードを分析してみる
genを実際に読んでみようと思います。
<!--truncate-->デバッグ方法をついでに書こうと思ったら、いい具合にいい記事が合ったので紹介。
vscodeでやる方法もあります。
cliを叩くところから
/lib/cli.js examples -Do --port 9000 --library glamorous
最初にmeow
が動いて、
const cli = meow(helpMessage, options)
入力された設定の読み込み、
// cliから入力された第一引数をlocalDirnameに格納, なければcliを叩いた位置 const [localDirname = process.cwd()] = cli.input // https://github.com/sindresorhus/read-pkg-up // localDirnameから最も近い位置にあるpackage.jsonをreadする const userPkg = readPkgUp.sync({ cwd: localDirname }) || {} // ここに型を当てておいたほうが良さそう const localOpts = { // https://github.com/sindresorhus/dot-prop // . でobjectを探索 ...dot.get(userPkg, 'pkg.gen'), // meowで定義したoptionsを展開 ...cli.flags, // 出力ディレクトリを指定 outDir: path.join(process.cwd(), cli.flags.outDir || ''), }
dev-serverかhtmlの生成か
if (localOpts.dev) { // 開発サーバーの立ち上げ server(localDirname, localOpts) } else { // 静的サイトの生成 create(localDirname, localOpts) }
ざっくりとこんな感じ。
ざっくりと5つ
ん?同じ作者 ... !
にゃー
寝よう