0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JS (TS) で CLI を作る要点メモ

Posted at

概要

Node.js で CLI を作ったので備忘録として作り方の要点をメモします。
npm 等には公開せず、ローカル環境での実行のみを想定しています。

環境

Node.js 12.13.0

要点

package.jsonbin を指定

コマンドラインから実行するコマンドと、コマンドを実行した際に実行されるスクリプトファイルを指定。

package.json
{
  "bin": {
    "my-cli-name": "bin/cli.js"
  }
}

bin で指定したスクリプトを作成

シェバンで node を指定して、実行したい処理を記述します。

bin/cli.js
#!/usr/bin/env node

require('../dist/app.js');

その他作法

  • プロジェクト内の JSON 等静的テキストファイルは require で読み込むようにする。
    • path.resolve を使うとバンドルされた後や bin ディレクトリからの実行時に __dirname の挙動が変わる。(10割勉強不足)
    • 静的ファイルは require でスクリプト内に埋め込んでしまうのが、時間が無い時は学習コスト掛からず手っ取り早い。
    • テンポラリファイル等の置き場所の解決はどうするのが良いのかまだ判断ついてない。

作ったコマンドのインストール

# プロジェクトのディレクトリで
npm link
# または
npm install -g .

振り返り

cli で動くプログラムをまともに作ったのが初めてだったのだけど、
今回シングルプロセス/シングルスレッド + 同期 I/O で作っちゃったので処理速度が結構遅くなりました。
非同期 I/O と Worker Threads を覚えるとよさそう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?