nodejsでcli開発を楽しくするライブラリの紹介
TRANSCRIPT
NodeJSでCLI開発を 楽しくするライブラリの紹介
2015/12/08 Meguro.es #1 @mizuki_r
Profile
twitter: @mizuki_r github: ry_mizuki
GotandaJSからやって来ました。
HR6の片手剣使い。エリアル楽しいよエリアル。
今日話すこと
今日話すこと
NodeJSでのCLI開発に役立つライブラリを紹介
役立つライブラリ
• lodash … 知ってるし、Nodeじゃなくても使う
• moment … 知ってるし、Nodeじゃな(ry
• minimist … 知ってるし、別におもしくn(ry
役立つ 楽しく開発できるライブラリ
• なうてもいいけど、あるとテンションあがる
• なくてもいいけど、あると捗る
• なくてもいいけど、あると嬉しい
さあ、開発しよう
Agenda
• 入力
• 出力
• 時限装置
• リリース
入力
cli parserと言えば…
• minimist
• yargs
• nopt
• etc …
inquirer
inquirer• https://www.npmjs.com/package/inquirer
• yeomanとかが使ってる
• 対話入力方式
• text, password, list等様々な入力形式
• SNSのスクレイパー、実行途中の入力
出力
見た目は大事
• 配色
• 整形
chalk
• https://www.npmjs.com/package/chalk
• 配色の鉄板
• GruntJSとかが使ってる
https://www.npmjs.com/package/chalk
colorsvar colors = require('../lib/index');
console.log("First some yellow text".yellow);
console.log("Underline that text".yellow.underline);
console.log("Make it bold and red".red.bold);
console.log(("Double Raindows All Day Long").rainbow)
console.log("Drop the bass".trap)
console.log("DROP THE RAINBOW BASS".trap.rainbow)
colors• https://www.npmjs.com/package/colors
• Stringに配色のメソッドをはやせる
• Gulpとかが使ってる(...だったような
• キモい!だがそれがいい!
• `colors.red(“danger”)` みたいにも使える
cli-table
• https://www.npmjs.com/package/cli-table
• テーブル形式にデータをフォーマットする
• CLIで集計してコピペして共有したい時におすすめ
https://www.npmjs.com/package/cli-table
winston• https://www.npmjs.com/package/winston
• 汎用ロガー
• sailsなどで使われている
• console.logやファイルなど様々な出力方式
• バックグラウンドプロセスにしても安心
時限装置
node-schedule• https://www.npmjs.com/package/node-schedule
• 時間と関数を登録して、そのタイミングで実行する
• cronの記法なんてわからない情弱僕向け
• cron記法から日時指定まで幅広いフォーマットをサポート
node-schedule
var schedule = require('node-schedule'); var date = new Date(2012, 11, 21, 5, 30, 0);
var j = schedule.scheduleJob(date, function(){ console.log('The world is going to end today.'); });
リリース
npm version?• changelogを生成してcommitに含めたい
• bower.jsonも更新したい
• リリースしたらslackに「リリー酒!」ってつぶやきたい
• それnpm scriptsのpostversionでできるよ
mversion
• https://www.npmjs.com/package/mversion
• package.json, bower.json, npm-shrinkwrapなどに対応
• git commit前にhookできるのでchangelogを更新してaddできる
conventional-changelog• https://www.npmjs.com/package/conventional-changelog
• git commitからchangelogを整形・ファイルに追加する
• angularjsのフォーマットに対応
• 自分の備忘録代わりにも
mversion + conventional-changelog
// package.json { "scripts": { "bump": "mversion $1 -m '%s'" } }
// .mversionrc { "scripts": { "precommit": "conventional-changelog -i CHANGELOG.md -w; git add CHANGELOG.md" } }
まとめ
• CLI開発に関するライブラリを紹介しました
• ぶっちゃけ知らなくても生きてける
• 新しい発見や、今後の挑戦のネタにでもなれば
• ぜひ使ってみてください
ご清聴ありがとうございました