awesome npm

Table of Contents *generated with *DocToc

0. 概述

收藏和调研过的一些 npm 包的集合。(Npm packages)

1. 后端开发

1.1 HTTP

[Server]

  • spdy - SPDY/HTTP2服务器,兼容Express

[Client]

  • request - Simplified HTTP request client
  • request-promise - request 模块的promise版本,流程控制更方便
  • got - 轻量化的request,支持async
  • superagent - 功能丰富,支持插件,函数式风格,支持Node和浏览器
  • axios - vue官方推荐的client库,功能丰富,支持Node和浏览器
  • node-fetch - 轻量级的Node版本的fetch
  • urllib - Request HTTP(s) URLs in a complex world
  • download - 文件下载库

[Proxy]

[Mock]

  • Nock - Node.js Mock库
  • Mock - 浏览器和Node均可用,支持自定义schema和随机数据

[Util]

  • morgan - HTTP请求日志处理中间件
  • finalhandler - Node.js final http responder
  • http-signature - Reference implementation of Joyent's HTTP Signature Scheme

1.2 框架

参考:http://nodeframework.com/

[静态服务器]

  • serve-static - 静态文件服务器
  • http-server - 静态文件服务器命令行工具,无需配置,一条命令开启 http 服务

[web 框架]

  • express - 可以说是使用最广泛的 Node.js web 框架
  • koa - express 原班人马打造,轻量精美的框架
  • fastify - 提出 JSON Schema,使得序列化更快速,性能强大的框架
  • connect - 只提供中间件层的迷你框架
  • sails - 支持快速开发的 MVC 框架,Node 版 Rails
  • total.js - MVC 框架,提供了丰富的 CMS 案例

[企业框架]

支持 Typescript

  • egg - 基于 Koa,强大的 loader / plugin 等机制,项目架构更清晰可控,阿里巴巴企业级应用框架
  • nest - 对标 Spring Boot 的企业级框架,提供了便利的装饰器
  • thinkjs - 参考 ThinkPHP,基于 Koa 的企业级应用框架,360 奇舞团团队支持

[微服务]

  • hapi - 一款极简的框架,常用于 API Gateway
  • feathers - 富有 Hook 特色的微服务框架
  • restify - 基于 connect,同时支持 Server / Client
  • micro - 异步编程特色的微服务框架

[同构]

  • Meteor - Node.js 全栈开发框架
  • Next.js - React 同构框架
  • Nuxt.js - Vue 同构框架
  • beidou - Egg / React 同构框架,性能强劲,支持客户端渲染降级

[无服务器]

[Real-Time]

  • socket.io - 强大的 WebSocket 框架
  • ws - 轻量快速,易测试的 WebSocket 框架

[RPC]

  • thrift
  • dnoe
  • axon
  • avsc
  • xmlrpc
  • noice-json-rpc

[数据通信]

1.3 模板引擎

  • pug (jade)
  • handlebars
  • mustaches
  • hogan
  • nunjucks
  • marko
  • ejs
  • art-template
  • swig
  • doT

1.4 数据库

下面介绍的都是基于数据库驱动程序(如 mysql2, redis, mongodb, odbc 等)之上封装,足以直接应用在生产环境的客户端工具。

[关系型]

  • sequelize - 一款支持 mysql, sqlite3, pg, msssql 的多功能 orm 库
  • waterline - Sail.js 默认的 orm 库,酷在其基于适配器,可以支持关系型 & 非关系型数据库,支持 mysql, sqlite3, pg, redis, mongodb
  • knex - 一款灵活编写的 SQL 构建工具,被 Ghost 采用,支持 mysql, sqlite3, pg
  • bookshelf - 基于 knex 的上层 ORM 库,支持 mysql, sqlite3, pg

[其他]

  • mongoose - 全能的 MongoDB ORM 库
  • ioredis - 健硕全能的 redis 客户端工具

1.5 日志

  • log4js - 中规中矩的 log4js 日志工具
  • bunyan - 基于 JSON 的日志模块
  • winston - 支持结构化 & 非结构化的更全能的日志工具

1.6 项目管理

[进程管理]

  • forever - 顾名思义,让你的进程永远运行下去
  • pm2 - 支持热启动、负载、集群、监控、重启等功能
  • nodemon - 支持热加载和自动重启
  • supervisor - 支持热加载和自动重启,较消耗内存

1.7 站点

[博客]

  • ghost - 强大的博客系统
  • calypso - Wordpress Node版本

[CMS]

[静态站点]

  • hexo - 静态博客生成器,已被golang的hugo超越
  • gatsby - React 静态站点生成器

[论坛]

2. 前端 & 无线开发

3. 命令行程序

3.2 推荐

3.1 开发库

[输入]

  • get-stdin - 获取标准输入流的工具
  • inquirer - 命令行工具中的用户交互界面(包括「输入/选择/确认」等功能)

[输出]

  • chalk - 输出五颜六色的字符
  • clear - 清除屏幕(同命令 clear)
  • clui - 终端下的数据可视化工具,支持仪表盘 / 进度 / Loading / 线图等
  • figlet - 大字符 Banner 生成工具,比如一个超级大的 "Webpack" 标识
  • qrcode-terminal - 终端输出二维码
  • ora - 一款优雅的终端进度条 (spinner) 展示的库

[参数处理]

  • commander - 完整的命令行用户界面的处理方案
  • yargs - 海盗主题的命令行用户界面的处理方案
  • minimist - 标准命令行参数解析工具
  • meow - 功能丰富的命令行开发库,主要用于处理参数

[其他]

4. 工具

4.1 Util

[库]

  • loadash
  • underscore

[编码]

  • libphonenumber

[时间处理]

  • moment - 重量级时间处理库,支持时间解析、格式化、计算等,功能强大,支持浏览器和 Node.js,压缩后体积约为 16.3 KB
  • date-fns - 较 moment 更轻量级的事件处理库,体积更小

4.2 系统相关

4.3 办公

[excel]

  • js-xlsx
  • node-xlsx
  • Node-Excel-Export

[ppt]

  • node-ppt

[mail]

  • nodemailer

4.4 安全

5. 构建工具

5.1 项目构建

  • parcel - 新一代打包工具,更快更容易配置
  • rollup
  • webpack
  • fis
  • scrat
  • gulp
  • grunt
  • browserify

5.2 css预处理

  • stylus
  • less
  • sass
  • postcss

5.3 语言编译

  • babel
  • marked

API

  • jsdoc - API 生成器,通过识别代码中的注释编译成 html 文档

6. 其他

6.1 AI

  • ConvNetJS - 卷积神经网络在浏览器的实现
  • deeplearnJS~~ - 浏览器下的支持硬件加速的深度学习库,使用 tfjs 代替~~
  • tfjs - TensorFlow JS 版本,官方计划大力支持
  • brain.js - 基于模型训练的神经网络 JS 库,支持浏览器和 Node

6.2 并行计算

  • gpu.js - 浏览器 GPU 运算模块
  • parallel.js - 浏览器 web workers & Node多进程
  • napajs - 基于 V8 多线程运行时环境

6.3 Iot

  • mqtt.js - MQTT 客户端,支持 node 和浏览器,是诸多 iot 库的基础设施
  • Ruff - 物联网硬件操作系统 & 平台,通过 JavaScript 控制硬件设备

6.4 图像

6.5 Assembly

6.6 NLP

  • natural - 自然语言处理工具,已支持中文
  • jieba - 好用的中文分词工具
  • hubot - Github 的机器人框架
  • nlp.js - 自然语言处理工具,支持语义提取、情感分析、自动语言识别等

6.7 游戏

7. 调试

7.1 调试工具

  • debug - 最好用的 debug 日志辅助工具.
  • node-inspector - Node debugger 和 Devtools 结合的调试工具(PS:node v6.3+ 已内置)

7.2 web调试

以下模块主要用于移动端,无F12 调试工具下的场景

  • weinre - phonegap 时代的产物,WebView 远程调试神器,不支持 node v4+,使用时一般通过nvm先切换node版本;
  • spy-debugger - 页面远程调试 & 抓包工具,不支持 node v4+
  • vconsole - 微信小程序推出的调试工具,直接内嵌在页面内,支持控制台、网络、系统信息.

8. 测试

8.1 测试框架

8.2 断言库

8.3 工具

8.4 web 自动化