アイコンリサイズ用のnpmパッケージを作ってみた その3
前回できたiconcというコマンドツールの実行メッセージが表示されないとこを改善したいと思います。ファイル処理のメッセージはEventEmitterのemitメソードを利用して実現します。
EventEmitter
についてはこの記事で詳しく説明しています:
早速実装をしてみます。修正するファイルは./index.js
となります:
これで、EventEmitter
の継承完了しました。とりあえず下記のイベントを定義します:
- EVENT_DATA ファイルが処理された時に発信
- EVENT_END 全てのファイルが処理された時に発信
const
で定義:
直接
emit('data')
みたいに、文字列を渡すことも可能だが、event名は定数にするのが一般的です。
リサイズ処理のところに:
最後のコールバックに:
イベント発信の実装が終わったら、bin/iconc
スクリプトで受信してメッセージを表示する実装します:
はい、これでメッセージは表示するようになります。再インストールしてみよう:
面倒くさいと思ったら、直接
./bin/iconc
を$PATH
に入れても大丈夫です
今回は、リサイズ設定を指定したファイルから読み込んで実行する実装も検証してみたい、適当なところに下記のyamlファイルを作成します:
下記のコマンドで実行すると
生成されたファイルのパスが表示されました!まだ細かいところは実装してないが、仕事の合間にちょこちょこ完成度を上げていきます。 今度はVagrantfileやDockerfileなどみたいにIconcFileをデフォルトに読み込む仕様にしたいと思います。