主な参考
実行モデル
typescriptで書いたコードをtscでjsにして、npmパッケージとしてビルド。publishしたくない場合package.jsonでprivateとしてマークする
実行の際はnpm installにて先のnpmパッケージをインストール、nodejsをランタイムにnpmをランナー(ランチャー?)として、npx モジュール名 ないし package.jsonのbinに書かれたコマンドで実行する
npmはパッケージマネージャでありランタイムではないので必須ではなく、最小という意味ではnodeがあって、node [cli-script.js filename] みたいに実行すればいいんだけど
ビルドやパッケージ管理考えると流石にnpmあった方がよい
学習フェイズでとりあえず動かしたいなら node [js] で全然いい。お手軽
hello world
console.log('hello')のts書いてtsc [ts]して出てきたファイルをnode [js]でとりあえず。npmのhelloworldはまだやってない。
package.jsonの書き方
長すぎる。が、binやprivateないしpublish周りの設定は見といた方が無難だと思う。
仕事用とかで公開しにくいならprivate true;と"license": "UNLICENSED"はとりあえずで入れといたほうがよさげ。
npm init?
package.json作ってくれるだけ。これをやるだけではnpmパッケージとして実行できるようにならないんで、CLIアプリケーション作りたいってだけなら忘れてもいい
パッケージマネージャとしてnpm使うだろうからやっといた方がいいだろうけど、「パッケージマネージャを利用する」「公開のためnpmパッケージとしてビルドする」「開発の各コマンドを管理する」以上の目的を考えるまでは扱わなくても考えてなくてもいい
CLIの作り方になれる、構文触ってみる学習フェイズならいらないと言ってもいい