nodejsでcli開発を楽しくするライブラリの紹介

30
NodeJSでCLI開発を 楽しくするライブラリの紹介 2015/12/08 Meguro.es #1 @mizuki_r

Upload: ryo-iinuma

Post on 13-Apr-2017

1.645 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: NodeJSでCLI開発を楽しくするライブラリの紹介

NodeJSでCLI開発を 楽しくするライブラリの紹介

2015/12/08 Meguro.es #1 @mizuki_r

Page 2: NodeJSでCLI開発を楽しくするライブラリの紹介

Profile

twitter: @mizuki_r github: ry_mizuki

GotandaJSからやって来ました。

HR6の片手剣使い。エリアル楽しいよエリアル。

Page 3: NodeJSでCLI開発を楽しくするライブラリの紹介

今日話すこと

Page 4: NodeJSでCLI開発を楽しくするライブラリの紹介

今日話すこと

NodeJSでのCLI開発に役立つライブラリを紹介

Page 5: NodeJSでCLI開発を楽しくするライブラリの紹介

役立つライブラリ

• lodash … 知ってるし、Nodeじゃなくても使う

• moment … 知ってるし、Nodeじゃな(ry

• minimist … 知ってるし、別におもしくn(ry

Page 6: NodeJSでCLI開発を楽しくするライブラリの紹介

役立つ 楽しく開発できるライブラリ

• なうてもいいけど、あるとテンションあがる

• なくてもいいけど、あると捗る

• なくてもいいけど、あると嬉しい

Page 7: NodeJSでCLI開発を楽しくするライブラリの紹介

さあ、開発しよう

Page 8: NodeJSでCLI開発を楽しくするライブラリの紹介

Agenda

• 入力

• 出力

• 時限装置

• リリース

Page 9: NodeJSでCLI開発を楽しくするライブラリの紹介

入力

Page 10: NodeJSでCLI開発を楽しくするライブラリの紹介

cli parserと言えば…

• minimist

• yargs

• nopt

• etc …

Page 11: NodeJSでCLI開発を楽しくするライブラリの紹介

inquirer

Page 12: NodeJSでCLI開発を楽しくするライブラリの紹介

inquirer• https://www.npmjs.com/package/inquirer

• yeomanとかが使ってる

• 対話入力方式

• text, password, list等様々な入力形式

• SNSのスクレイパー、実行途中の入力

Page 13: NodeJSでCLI開発を楽しくするライブラリの紹介

出力

Page 14: NodeJSでCLI開発を楽しくするライブラリの紹介

見た目は大事

• 配色

• 整形

Page 15: NodeJSでCLI開発を楽しくするライブラリの紹介

chalk

• https://www.npmjs.com/package/chalk

• 配色の鉄板

• GruntJSとかが使ってる

https://www.npmjs.com/package/chalk

Page 16: NodeJSでCLI開発を楽しくするライブラリの紹介

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)

Page 17: NodeJSでCLI開発を楽しくするライブラリの紹介

colors• https://www.npmjs.com/package/colors

• Stringに配色のメソッドをはやせる

• Gulpとかが使ってる(...だったような

• キモい!だがそれがいい!

• `colors.red(“danger”)` みたいにも使える

Page 18: NodeJSでCLI開発を楽しくするライブラリの紹介

cli-table

• https://www.npmjs.com/package/cli-table

• テーブル形式にデータをフォーマットする

• CLIで集計してコピペして共有したい時におすすめ

https://www.npmjs.com/package/cli-table

Page 19: NodeJSでCLI開発を楽しくするライブラリの紹介

winston• https://www.npmjs.com/package/winston

• 汎用ロガー

• sailsなどで使われている

• console.logやファイルなど様々な出力方式

• バックグラウンドプロセスにしても安心

Page 20: NodeJSでCLI開発を楽しくするライブラリの紹介

時限装置

Page 21: NodeJSでCLI開発を楽しくするライブラリの紹介

node-schedule• https://www.npmjs.com/package/node-schedule

• 時間と関数を登録して、そのタイミングで実行する

• cronの記法なんてわからない情弱僕向け

• cron記法から日時指定まで幅広いフォーマットをサポート

Page 22: NodeJSでCLI開発を楽しくするライブラリの紹介

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.'); });

Page 23: NodeJSでCLI開発を楽しくするライブラリの紹介

リリース

Page 24: NodeJSでCLI開発を楽しくするライブラリの紹介

npm version?• changelogを生成してcommitに含めたい

• bower.jsonも更新したい

• リリースしたらslackに「リリー酒!」ってつぶやきたい

• それnpm scriptsのpostversionでできるよ

Page 25: NodeJSでCLI開発を楽しくするライブラリの紹介

mversion

• https://www.npmjs.com/package/mversion

• package.json, bower.json, npm-shrinkwrapなどに対応

• git commit前にhookできるのでchangelogを更新してaddできる

Page 26: NodeJSでCLI開発を楽しくするライブラリの紹介

conventional-changelog• https://www.npmjs.com/package/conventional-changelog

• git commitからchangelogを整形・ファイルに追加する

• angularjsのフォーマットに対応

• 自分の備忘録代わりにも

Page 27: NodeJSでCLI開発を楽しくするライブラリの紹介

mversion + conventional-changelog

// package.json { "scripts": { "bump": "mversion $1 -m '%s'" } }

// .mversionrc { "scripts": { "precommit": "conventional-changelog -i CHANGELOG.md -w; git add CHANGELOG.md" } }

Page 28: NodeJSでCLI開発を楽しくするライブラリの紹介

まとめ

Page 29: NodeJSでCLI開発を楽しくするライブラリの紹介

• CLI開発に関するライブラリを紹介しました

• ぶっちゃけ知らなくても生きてける

• 新しい発見や、今後の挑戦のネタにでもなれば

• ぜひ使ってみてください

Page 30: NodeJSでCLI開発を楽しくするライブラリの紹介

ご清聴ありがとうございました