くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

package.jsonのbinディレクトリ

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ツールが作れるぞ(*´ω`*)

参考にしたサイトさま