unjs/jitiとかのjiti
コマンドってどうやってるんだろ?
と思い、いろいろ調べてみたときの備忘録(*´ω`*)
packge.json
のbinを指定すればいいっぽい。
実行コマンド用のjs
bin/jiti.js
を見てみるとこんな感じ。
#!/usr/bin/env node const { resolve } = require("path"); const script = process.argv.splice(2, 1)[0]; if (!script) { // eslint-disable-next-line no-console console.error("Usage: jiti <path> [...arguments]"); process.exit(1); } const pwd = process.cwd(); const jiti = require("..")(pwd); const resolved = (process.argv[1] = jiti.resolve(resolve(pwd, script))); jiti(resolved);
1行目にシバン(shebang)を書いておけばよいっぽい。
packge.jsonの設定
あとは、そのファイルを設定すればOK
jitiの場合はこんな感じになってる。
{ "bin": "bin/jiti.js", }
npm Docsを見てみると、
複数のコマンドも指定できるっぽい。
{ "bin": { "my-program": "./path/to/program" } }
"bin": "./path/to/program"
だとパッケージ名がコマンド名に、
"bin": { "my-cmd": "./path/to/program" }
だと、my-cmd
がコマンド名になる。
以上!! これでオレオレCLIツールが作れるぞ(*´ω`*)