asciidwango/js-primer

Node.jsのCLIアプリ

azu opened this issue · 15 comments

azu commented

Node.jsのCLIアプリで何か一つユースケースがあるといいのではないという話が #5 ででた。
具体的に何かは出てなかったので、考える必要がありそう。

/cc @laco0416

azu commented

CLIを話題にするなら、引数とオプションを扱う感じがする。

引数パース -> オプションオブジェクトに変換 -> 関数に渡す

デフォルトオプションをObject.assignとデフォルト引数で扱う方法をカバーできてると良い気がする(ものすごく典型的なユースケース)

    const DEFAULTS = {
        logLevel: 0,
        outputFormat: 'html'
    };
    function processContent(options) {
        options = Object.assign({}, DEFAULTS, options); // (A)
        ···
    }

callbackベースの標準API(fsとか)をPromiseでラップしてメソッドチェーンで処理するケース

なかなかいい題材が思いつかない…

npmパッケージの活用ということでとりあえずcommanderは入れようと思っているけど、生でprocess.argvに触るときに[0]と[1]に何が入っているみたいな話は別に必要そう

ファイルパスを受け取って読み取って何かしら改変して吐き出す、と思っていたけどどう改変するとユースケースっぽいか悩んでる。ただのチュートリアルならアッパーケースにするとかだけでもいいけど、ユースケースとなるともうちょっと「応用すれば実用的かも」くらいな題材がいい気がしている

https://www.npmjs.com/package/table を使って、CSVを読み込んでテーブルのアスキーアートを出力するのは面白そうだなと思ったけど、このパッケージがライブラリをデフォルトモジュールで出力していて const table = require('table'); で使えないので微妙

AjaxサンプルのほうでもGitHub API使ったし、こっちでもmarkdown -> html 変換とかやるといいかも

azu commented

Node.js バージョン管理ツールとElectronベースのインストーラーの議論があるのか。
https://github.com/nodejs/version-management
https://github.com/nodejs/installer

azu commented

The Node Beginner Book » A comprehensive Node.js tutorial
これ一応今もアップデートされてるんだな

azu commented

JSPatterns.com » Blog Archive » Node shell scripting
今時めずらしいNode.jsの本当に入門的な記事が書かれてた

azu commented

今時のフロントエンド開発2017 (2. 構築編) - Qiita
npmのオプションテーブルわかりやすい

とりあえず完了

Object.assignを {...obj} に書き直す

ひとまず書き終わってるのでcloseする