推荐一些常用的 NPM 包
本文长期维护在:https://github.com/x-cold/awesome-npm 欢迎 PR 补充 0. 概述 收藏和调研过的一些 npm 包的集合。(Npm packages) 1. 后端开发 1.1 HTTP [Server] spdy
本文长期维护在:https://github.com/x-cold/awesome-npm
欢迎 PR 补充
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]
http-proxy - 功能全面的http代理库
http-proxy-middleware - http-proxy 中间件
anyproxy - 可供插件配置的HTTP/HTTPS代理服务器
[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 同构框架,性能强劲,支持客户端渲染降级
[无服务器]
serverless - AWS 无服务器架构,支撑 AWS、Azure、Google Cloud 等相关服务
serverless-aliyun-function-compute - 阿里云 serverless 框架
[Real-Time]
socket.io - 强大的 WebSocket 框架
ws - 轻量快速,易测试的 WebSocket 框架
[RPC]
thrift
dnoe
axon
avsc
xmlrpc
noice-json-rpc
[数据通信]
protobuf - Google 数据通信协议
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]
keystone - 基于 Mongodb 的 CMS
directus - 纯后台的 CMS 服务框架
[静态站点]
hexo - 静态博客生成器,已被golang的hugo超越
gatsby - React 静态站点生成器
[论坛]
NodeBB - Node 论坛系统
2. 前端 & 无线开发
3. 命令行程序
3.2 推荐
redis-dump - Node 版本的 redis-dump
3.1 开发库
[输入]
readline
get-stdin
[输出]
chalk
clear
clui - 仪表盘 / 进度 / Loading / 线图
figlet - Title
multispinner
qrcode-terminal - 控制台输出二维码
[交互]
inquirer
[账户配置]
preferences
[参数处理]
minimist
commander
yargs
meow
4. 工具
4.1 Util
[库]
loadash
underscore
[编码]
libphonenumber
[时间处理]
moment - 重量级时间处理库,支持时间解析、格式化、计算等,功能强大,支持浏览器和 Node.js,压缩后体积约为 16.3 KB
date-fns - 较 moment 更轻量级的事件处理库,体积更小
4.2 系统相关
internal-ip - 获取IP地址
ipp - Internet 打印机协议
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 版本,官方计划大力支持
6.2 并行计算
gpu.js - 浏览器 GPU 运算模块
parallel.js - 浏览器 web workers & Node多进程
napajs - 基于 V8 多线程运行时环境
6.3 Iot
mqtt.js - MQTT 客户端,支持 node 和浏览器,是诸多 iot 库的基础设施
Ruff - 物联网硬件操作系统 & 平台,通过 JavaScript 控制硬件设备
6.4 图像
jimp - Node 图片读写、编辑库
node-opencv - 基于opencv 2.4,无法完美支持 3+
opencv4node - opencv 3+
6.5 Assembly
emscripten - LLVM to JavaScript Compiler.
compile-to-web - Lang to LLVM & WASM Compiler.
joy - Go to Javascript compiler.
6.6 NLP
natural - 自然语言处理工具,已支持中文
jieba - 好用的中文分词工具
hubot - Github 的机器人框架
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 自动化