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

Post on 13-Apr-2017

1.645 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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開発に関するライブラリを紹介しました

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

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

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

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

top related