Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

2,520 views

Published on

Meguro.esでのLT資料です。

Published in: Technology
  • Be the first to comment

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

  1. 1. NodeJSでCLI開発を 楽しくするライブラリの紹介 2015/12/08 Meguro.es #1 @mizuki_r
  2. 2. Profile twitter: @mizuki_r github: ry_mizuki GotandaJSからやって来ました。 HR6の片手剣使い。エリアル楽しいよエリアル。
  3. 3. 今日話すこと
  4. 4. 今日話すこと NodeJSでのCLI開発に役立つライブラリを紹介
  5. 5. 役立つライブラリ • lodash … 知ってるし、Nodeじゃなくても使う • moment … 知ってるし、Nodeじゃな(ry • minimist … 知ってるし、別におもしくn(ry
  6. 6. 役立つ 楽しく開発できるライブラリ • なうてもいいけど、あるとテンションあがる • なくてもいいけど、あると る • なくてもいいけど、あると嬉しい
  7. 7. さあ、開発しよう
  8. 8. Agenda • 入力 • 出力 • 時限装置 • リリース
  9. 9. 入力
  10. 10. cli parserと言えば… • minimist • yargs • nopt • etc …
  11. 11. inquirer
  12. 12. inquirer • https://www.npmjs.com/package/inquirer • yeomanとかが使ってる • 対話入力方式 • text, password, list等様々な入力形式 • SNSのスクレイパー、実行途中の入力
  13. 13. 出力
  14. 14. 見た目は大事 • 配色 • 整形
  15. 15. chalk • https://www.npmjs.com/package/chalk • 配色の鉄板 • GruntJSとかが使ってる https://www.npmjs.com/package/chalk
  16. 16. colors var 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)
  17. 17. colors • https://www.npmjs.com/package/colors • Stringに配色のメソッドをはやせる • Gulpとかが使ってる(...だったような • キモい!だがそれがいい! • `colors.red( danger )` みたいにも使える
  18. 18. cli-table • https://www.npmjs.com/package/cli-table • テーブル形式にデータをフォーマットする • CLIで集計してコピペして共有したい時におすすめ https://www.npmjs.com/package/cli-table
  19. 19. winston • https://www.npmjs.com/package/winston • 汎用ロガー • sailsなどで使われている • console.logやファイルなど様々な出力方式 • バックグラウンドプロセスにしても安心
  20. 20. 時限装置
  21. 21. node-schedule • https://www.npmjs.com/package/node- schedule • 時間と関数を登録して、そのタイミングで実行す る • cronの記法なんてわからない情弱僕向け • cron記法から日時指定まで幅広いフォーマットを サポート
  22. 22. 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.'); });
  23. 23. リリース
  24. 24. npm version? • changelogを生成してcommitに含めたい • bower.jsonも更新したい • リリースしたらslackに「リリー酒!」ってつぶ やきたい • それnpm scriptsのpostversionでできるよ
  25. 25. mversion • https://www.npmjs.com/package/mversion • package.json, bower.json, npm-shrinkwrap などに対応 • git commit前にhookできるのでchangelogを 更新してaddできる
  26. 26. conventional-changelog • https://www.npmjs.com/package/ conventional-changelog • git commitからchangelogを整形・ファイルに 追加する • angularjsのフォーマットに対応 • 自分の備忘録代わりにも
  27. 27. mversion + conventional-changelog // package.json { "scripts": { "bump": "mversion $1 -m '%s'" } } // .mversionrc { "scripts": { "precommit": "conventional-changelog -i CHANGELOG.md -w; git add CHANGELOG.md" } }
  28. 28. まとめ
  29. 29. • CLI開発に関するライブラリを紹介しました • ぶっちゃけ知らなくても生きてける • 新しい発見や、今後の挑戦のネタにでもなれば • ぜひ使ってみてください
  30. 30. ご清聴ありがとうございました

×