【Node.js】(個人用メモ) 有名ツールから学ぶ便利なライブラリ

有名ツールが依存していたり、ドキュメントで参照していたりするツールやライブラリから便利なものを探してみた。

# フォーマット、コーディング規約、コードジェネレータ、バージョン管理

- xo https://www.npmjs.com/package/xo
- eslint https://eslint.org/
- prettier https://prettier.io/
- lint-staged https://github.com/okonet/lint-staged
- precise-commits https://github.com/nrwl/precise-commits
- pretty-quick https://github.com/azz/pretty-quick
- husky https://github.com/typicode/husky
- semver https://github.com/npm/node-semver
- mrm https://github.com/sapegin/mrm
- yeoman http://yeoman.io/
- generate https://generate.github.io/generate/
- slush http://slushjs.github.io

# 型

- TypeScript https://www.typescriptlang.org/
- Flow https://flow.org/en/
- check-types.js https://gitlab.com/philbooth/check-types.js
- ow https://github.com/sindresorhus/ow
 
# タスクランナー・変更管理

- chokidar https://github.com/paulmillr/chokidar
- watchman https://facebook.github.io/watchman
- watch https://github.com/mikeal/watch

# テスト・コードカバレッジ

- AVA https://www.npmjs.com/package/ava
- jest https://jestjs.io/
- Mocha https://mochajs.org
- Chai https://www.chaijs.com
  - chai-as-promised https://www.chaijs.com/plugins/chai-as-promised
- Istanbul https://github.com/gotwarlost/istanbul
  - nyc https://github.com/istanbuljs/nyc 
- power-assert https://github.com/power-assert-js/power-assert

## データジェネレータ

- Chance https://chancejs.com/
- faker https://www.npmjs.com/package/faker

# デバッグ、ログ表示

- debug https://www.npmjs.com/package/debug
- winston https://www.npmjs.com/package/winston

# 設定、コマンドライン処理

- yargs http://yargs.js.org/
- nconf https://www.npmjs.com/package/nconf
- minimist https://www.npmjs.com/package/minimist
- pkg-conf https://www.npmjs.com/package/pkg-conf
- inquirer https://www.npmjs.com/package/inquirer
- cosmiconfig

# テンプレートエンジン

- Mustache http://mustache.github.io/
- Hogan.js https://www.npmjs.com/package/hogan.js http://twitter.github.io/hogan.js/
- ejs https://www.npmjs.com/package/ejs

# ファイル・ファイル名操作

- fs-extra https://github.com/jprichardson/node-fs-extra
- replace-ext https://www.npmjs.com/package/replace-ext
- cpx https://www.npmjs.com/package/cpx
- memory-fs https://github.com/webpack/memory-fs
- mem-fs https://github.com/sboudrias/mem-fs
- vinyl https://github.com/gulpjs/vinyl
- tempy https://github.com/sindresorhus/tempy
- temp-write https://github.com/sindresorhus/temp-write
- rimraf
 
# データ型、データ変換

- ms https://www.npmjs.com/package/ms
- array-uniq https://www.npmjs.com/package/array-uniq
- lodash https://lodash.com/
- Chance https://chancejs.com/index.html
- Moment.js https://momentjs.com/

# フォーマット・表示

- as-table https://www.npmjs.com/package/as-table
- table https://www.npmjs.com/package/table
- cli-table https://www.npmjs.com/package/cli-table
- sprintf.js https://github.com/alexei/sprintf.js
- chalk https://www.npmjs.com/package/chalk
- clui https://www.npmjs.com/package/clui
- node-curses
- blessed

# Web

## HTTPサーバ・クライアント

サーバ

- Express http://expressjs.com/
- micro https://github.com/zeit/micro
- serve https://github.com/zeit/serve
- Now https://zeit.co/docs

クライアント

- axios https://github.com/axios/axios
- node-fetch https://github.com/bitinn/node-fetch
- isomorphic-fetch https://github.com/matthew-andrews/isomorphic-fetch

## リアクティブプログラミング

- Angular
- React https://reactjs.org/ https://www.npmjs.com/package/react 
- MobX https://mobx.js.org/ https://www.npmjs.com/package/mobx
- RxJS
- Vue.js + Vuex

## Single Page Application/サーバサイドレンダリング

- Next.js https://nextjs.org
- Nuxt.js https://nuxtjs.org/ (邦訳 https://ja.nuxtjs.org)
- Gatsby https://www.gatsbyjs.org

# 他ツール連携

- mqtt https://www.npmjs.com/package/mqtt
- docker-cli-js https://www.npmjs.com/package/docker-cli-js

# その他・未整理

- then-sleep https://github.com/ngthanhtrung/then-sleep-js