最全面的 Node.js 资源汇总推荐
程序员成长指北
共 18863字,需浏览 38分钟
·
2022-11-22 14:12
大厂技术 高级前端 Node进阶
点击上方 程序员成长指北,关注公众号
回复1,加入高级Node交流群
作者@前哨君|地址@https://github.com/jobbole/awesome-nodejs-cn
由于微信不支持外链,可文末 “阅读原文” 或打开 Github 地址查看更多详细资源。
【导读】:Node.js 是一个开源、跨平台的,用于编写服务器和命令行的 JavaScript 运行时工具。
awesome-nodejs 是sindresorhus
发起维护的 Node.js 资源列表,内容包括:命令行工具、日志、调试、HTTP、构建工具、文件系统、模板、Web 框架、流程控制、文本、图片和数据校验等。
这个列表堪称最全面的 Node.js 资源汇总,在 GitHub 已接近 4 万 Star
。
中文版由开源前哨
和前端大全
微信公号团队维护更新,欢迎在 Github 上关注。这个中文版的资源库会定期同步更新到这里。
本项目的参与者
维护者:「开源前哨」和「前端大全」微信公号团队。「开源前哨」会定期在知乎专栏分享最新、有趣和热门的开源项目,每个项目都有详细的介绍和示例。传送门:https://www.zhihu.com/column/c_1317124962785062912 贡献者:cooperw991
资源列表
包 黑科技 命令行程序 函数式编程 HTTP 调试 / 分析 日志 命令行工具 构建工具 硬件 模板 Web 框架 文档相关 文件系统 流程控制 文件流 实时 图片 文本 数字 数学 日期 URL 数据校验 解析 人性化 压缩 网络 数据库 测试 安全 基准化分析 代码压缩 认证 授权 电子邮件 任务队列 Node.js 管理 自然语言处理 进程管理 自动化 AST 静态网站生成 内容管理系统 论坛 写博客 怪诞的 序列化 其他
资源列表
包
黑科技
webtorrent - Node.js 和浏览器端洪流客户端 peerflix - 洪流客户端 dat - 对数据集的实时复制和版本控制 ipfs - 探索使用相同系统文件连接所有计算设备的分布式文件系统 stackgl - 建立在 browserify 和 npm 之上的 WebGL 开放软件生态系统 peerwiki - 所有 BitTorrent 上的维基百科 peercast - Chromecast 上的视频种子播放软件 BitcoinJS - 简洁,可读性强的,可靠的比特币库 Bitcore - 纯净强大的比特币库 PDFKit - PDF 生成库 turf - 模块化地理空间处理和分析引擎 webcat - 使用你的 GitHub 私/公钥利用点对点网页即时通信进行跨网络鉴权 NodeOS - 第一个基于 npm 的操作系统 YodaOS - AI 操作系统 Brain.js - 机器学习框架 Pipcook - 用于创建机器学习管道的前端算法框架 Cytoscape.js - 图论(a.k.a. 网络)建模和分析 Kadence - KAD 算法分布式哈希表 Seedshot - 临时点对点分享浏览器截屏 js-git - 用 JavaScript 实现的 Git skale - 高性能分布式数据处理引擎 xlsx - 纯 JS 的 Excel 表格读写工具 isomorphic-git - 纯 JavaScript 实现的 Git
命令行程序
np - 更好的 npm publish
npm-name - 检查包名在 npm 上是否可用 gh-home - 打开当前目录下项目的 GitHub 主页 npm-home - 打开一个包的 npm 主页 trash - 比 rm
更安全的选择speed-test - 测试你的互联网连接速度和 ping 值 emoj - 命令行下从文本中查找相关的 emoji pageres - 获取网站的截图 cpy - 复制文件 vtop - 有漂亮图表的更好用的 top empty-trash - 清空文件夹 is-up - 检测网站是否可以正常访问 is-online - 检测网络连接是否正常 public-ip - 获取你的公网 IP 地址 clipboard-cli - 在终端里复制粘贴 XO - 使用 JavaScript happiness 风格强制执行严格代码风格 Standard - JavaScript 标准样式 - 规范所有样式的样式 ESLint - JavaScript 可插式的代码规范检查工具 dev-time - 获取 GitHub 用户当前的本地时间 David - 当 npm 软件包中的依赖过时通知你 http-server - 简单、零配置的命令行 HTTP 服务器 Live Server - 具有热重启功能的开发环境 HTTP 服务器 bcat -将命令管道输出到 Web 浏览器 normit - 在您的终端中使用语音合成功能进行 Google 翻译 fkill - 跨平台的进程强杀命令 pjs - 用 JavaScript 实现的快速过滤、映射和累加器的管道命令 license-checker - 对你应用中的依赖进行许可证检查 browser-run - 在浏览器环境中轻松运行代码 tmpin - 对所有允许文件输入的 CLI 程序添加 stdin 支持 wifi-password - 获取当前 wifi 的密码 wallpaper - 更换桌面壁纸 brightness - 更改屏幕亮度 torrent - 下载种子 kill-tabs - 关闭所有 Chrome 标签来提升性能、降低功耗以及节省内存占用 alex - 捕捉写作中出现的不当表达 pen - 用你喜爱的编辑器编写 Markdown,在浏览器中提供实时预览 subdownloader - 电影和电视剧的字幕下载器 dark-mode - 开关 macOS 暗黑模式 iponmap - IP 地址查找器 Jsome - 使用自定义颜色和缩进打印漂亮的 JSON itunes-remote - 交互式控制 iTunes mobicon - 移动端应用图标生成器 mobisplash - 移动端应用启动页生成器 diff2html-cli - 生成漂亮的 HTML 展示 git diff 命令的结果 Cash - 用纯 JavaScript 编写的跨平台类 Unix Shell trymodule - 在终端中使用 npm 软件包 jscpd - 源代码重复代码检测 atmo - 模拟服务器端 API auto-install - 编写代码时自动安装依赖 lessmd - 终端环境下的 Markdown 预览器 cost-of-modules - 查找使性能降低的依赖 localtunnel - 向公网开放你的 localhost svg-term-cli - 基于 SVG 分享终端会话 gtop - 终端下的系统监控仪表板 themer - 为您的编辑器、终端、壁纸、Slack等生成主题 carbon-now-cli - 为你的代码生成精美的图片 cash-cli - 170 种货币汇率转换 taskbook - 命令行环境下的任务、板块和笔记管理器 discharge - 轻松将静态网站部署到 Amazon S3 npkill - 轻松查找和删除过时且臃肿的 node_modules 文件夹
函数式编程
lodash - 更好更快的Underscore.js,提供兼容性,灵活性,高性能和其他功能的实用工具库 immutable - 不可变数据集 Ramda - 专注于数据不变性和纯粹的函数式风格的工具集,利用将参数后置和自动柯里化实现灵活的函数组合。 Folktale - 一套用于 JavaScript 中的通用函数编程的库,它允许你编写bug更少,重用性更强的优雅的、模块化的应用程序 Mout - 该库与其他现有解决方案之间最大的区别是,您可以选择只加载需要的模块/函数,而不需要额外开销 Bacon.js - 函数式的响应式编程 RxJS - 用于转换、组合和查询各种类型数据的函数式响应式库 Lazy.js - 惰性求值的类似于 lodash/Underscore 的工具库,在许多情况下可以提供卓越的性能. Kefir.js - 专注于高性能和低内存消耗的响应式库
HTTP
got - 为内置的 http
模块提供更好的接口gh-got - 为 got
和 GitHub API 交互提供更方便的封装axios - 基于 Promise 的 HTTP 客户端(也可以在浏览器中工作) wreck - HTTP 客户端工具. download - 使下载和提取文件变得轻松 http-proxy - HTTP 代理 superagent - HTTP 请求库 node-fetch - Node.js 的 window.fetch
flashheart - REST 客户端 http-fake-backend - 使用 JSON 文件或者 JavaScript 对象 建立一个伪装的可自定义路由的后端服务 cacheable-request - 使用符合 RFC 的缓存支持封装原始的 HTTP 请求. gotql - 基于 got 构建的 GraphQL 请求库 global-agent - 可以使用环境变量配置的全局 HTTP / HTTPS 代理 smoke - 可记录的基于文件的模拟 HTTP 服务
调试 / 分析
ndb - 增强 Chrome DevTools 调试体验的工具 ironNode - 支持 ES2015 的 Node.js 开箱即用的调试器 node-inspector - 基于 Blink 开发者工具的调试器 debug - 轻量级调试工具 why-is-node-running - 当你不知道为何 Node.js 没有正确退出时... njsTrace - 检测并跟踪代码,查看所有函数调用、参数、返回值以及在每个函数中花费的时间 vstream - 检查数据流并且通过管道展示 stackman - 增强抛出异常的错误栈追踪 locus - 在运行时启动所有可访问变量的REPL 0x - 一个火焰图分析工具 ctrace - 对系统调用和信号的追踪进行格式优化和增强 leakage - 编写内存泄露测试 llnode - 一个用于 “解剖” 崩溃的 Node.js 进程,检视其对象的工具 thetool - 以 Chrome DevTools 友好格式为你的应用捕获不同的 CPU,内存和其他资源的使用情况 swagger-stats - 追踪 API 调用并监视 API 表现、运行状况和使用度量 NiM - 管理 DevTools 调试工作流
日志
pino - 受 Bunyan
启发的超快速日志记录器winston - 支持多种记录格式的异步日志记录库 console-log-level - 可以想象的最简单的记录器,支持日志级别和自定义前缀 storyboard -端到端,分层,实时,丰富多彩的日志和描述 signale - Console 日志记录器 consola - Console 日志记录器
命令行工具
chalk - 美化终端字符串样式 meow - CLI app 帮助 yargs - 自动生成优雅用户界面的命令行分析程序 ora - 优雅的终端旋转进度条 get-stdin - 简单的 stdin log-update - 在终端里以覆盖前一个输出的方式打印日志,用于制作进度条或者动画等 Ink - 基于 React 的命令行交互程序 listr - 终端任务列表 conf - 一个简单的用于程序或模块配置管理的工具 ansi-escapes - 操作终端的 ANSI 转义代码 log-symbols - 用不同颜色的符号记录不同级别的日志 figures - 支援 Windows CMD 回退方案的 Unicode 符号 boxen - 在终端中创建方框 terminal-link - 在终端中创建可点击的链接 terminal-image - 在终端里展示图片 string-width - 获取字符串的可视宽度 - 显示字符串所需的列数 cli-truncate - 在终端中将字符串截断为特定宽度 first-run - 检查是否是第一次运行该进程 blessed - 类似于 Curses 的库 Inquirer.js - 交互式的命令行提示工具 yn - 将包含 yes/no 语义的字符串解析为布尔值 cli-table3 - 漂亮的 Unicode 表 drawille - 使用 Unicode 盲文字符在终端上绘图 update-notifier - 升级 CLI 应用程序的通知 ascii-charts - 终端下的 ASCII 柱状图 progress - 灵活的 ASCII 进度条 insight - 使用 metrics 向 Google Analytics 发送匿名报告来帮助你理解你的工具是怎样被使用的 cli-cursor - 显示或关闭 CLI 光标 columnify - 将控制台文本打印按列输出,支持单元格修饰 cli-columns - 列式输出 Unicode 和 Ansi-safe cfonts - 控制台下的性感 ASCII 字体 multispinner - 多样的、可同时独立控制的 CLI 旋转指示器 omelette - Shell 下的自动补全 cross-env - 跨平台的环境变量设置 shelljs - 可移植的 Unix shell 命令 sudo-block - 禁止用户用 root 权限使用你的程序 loud-rejection - 强制对未加处理的 promise rejections 错误给出提示 sparkly - 生成迷你图 ▁▂▃▅▂▇
Bit - 在存储库中创建、维护、查找和使用小型模块和组件 gradient-string - 为终端输出添加漂亮的色彩渐变 oclif - CLI框架,包括解析器、自动文档、测试和插件 term-size - 准确地获得终端窗口大小 Cliffy - CLI 的交互式框架
构建工具
parcel - 快速,零配置的Web应用构建工具 webpack - 面向浏览器的打包工具 rollup - 新一代 ES2015 打包构建工具 gulp - 编程式、流式快速构建系统 Broccoli - 快速、可靠的资源管道,支持固定时间重新编译和紧凑的构建定义 Brunch - 前端 web 应用程序构建工具,具有简单的声明性配置、快速的增量编译和自定的工作流 Start - 具有可共享预设的函数式任务管理器 ygor - 一个基于 Promise 的任务执行工具 —— 当需要执行的工作太多 npm run
不足以完成任务时FuseBox - 首选支持 TypeScript 的结合了 webpack,JSPM 和 SystemJS 强大功能的快速构建系统 pkg - 将你的 Node.js 项目打包成可执行文件
硬件
johnny-five - 基于 Firmata 的 Arduino 框架 serialport - 读写串口 usb - USB 库 i2c-bus - I2C 串行总线访问 onoff - GPIO 访问和中断检测 spi-device - SPI 串行总线访问 pigpio - 树莓派上的快速 GPIO、PWM、伺服控制、状态更改通知和中断处理 gps - NMEA 解析器,用于处理 GPS 接收
模板
marko - 基于 HTML 的模板引擎,可将模板编译为 CommonJS 模块,并支持流、异步渲染和自定义标签 nunjucks - 灵感来自于 Jinja2 的具有继承、异步控制等功能的模板引擎 handlebars.js - Mustache 模板的超集,其中添加了强大的功能,如 helpers 和更高级的 blocks EJS - 超级简单的模板语言. Pug - 受Haml影响的高性能模板引擎.
Web 框架
Hapi - 用于创建应用和服务的框架 Koa - 由 Express 幕后团队设计的框架,旨在为 Web 应用程序和 API 提供更小、更富表现力和更健壮的基础 Express - 一个为构建单页、多页以及混合 Web 应用程序提供强大的功能的 Web 应用程序框架 Feathers - 受 Express 启发的微服务框架 LoopBack - 用于创建 REST API并轻松连接到后端数据源的强大框架 Meteor - 一个超简单、位于程序数据库和用户界面之间、保持二者之间数据同步更新的纯 Javascript Web 框架。(你可能会喜欢 awesome-meteor) Restify - 帮助你构建正确的REST Web 服务 ThinkJS - 支持 ES2015+ 的WebSockets REST API 框架 ActionHero - 用于为 TCP sockets,WebSocket 和 HTTP 客户端创建可重用、可扩展 API 的框架 Next.js - 极简化的 JavaScript 服务端渲染框架 Nuxt.js - Vue.js 服务端渲染框架 seneca - 编写微服务的工具包 AdonisJs - 基于依赖注入和 IoC 容器技术的 Node.js 的真正 MVC 框架. Hemera - 基于 NATS 编写的可靠且容错的微服务 Micro - 使用异步实现的极简微服务框架 Moleculer - 快速而强大的微服务框架 Fastify - 快速和低开销的 Web 框架 Nest -受 Angular 启发的框架,用于构建高效且可扩展的服务器端应用程序 Zeronode - 用于 Node.js 微服务的最小化构建块 TypeGraphQL - 使用类和装饰器的,用 TypeScript 编写 GraphQL API 的现代框架 TinyHttp - 类似于 Express 的现代、快速的 Web 框架 Marble.js - 基于 TypeScript 和 RxJS 的,用于构建服务端应用的函数式编程框架
文档相关
documentation.js - 支持 ES2015+ 和流程注释的 API 文档生成器 ESDoc - 面向 ES2015 的文档生成器,附加测试代码并评估文档覆盖范围 Docco - 生成一个在代码中混合注释的 HTML 的文档生成器 JSDoc - 类似于 JavaDoc 或 PHPDoc 的 API 文档生成器 Docusaurus - 基于 React 和 Markdown 的文档生成器,具有多语言和版本控制功能
文件系统
del - 使用 globs 删除文件/文件夹 globby - 支持多种模式的 Glob 文件 cpy - 文件拷贝 rimraf - 像 rm -rf
一样的递归删除make-dir - 像 mkdir -p
一样的递归创建目录graceful-fs - 功能增强版的 fs
模块chokidar - 像 macOS 上使用原生 fsevents
一样监听fs.watch
和fs.watchFile
的文件系统监听器find-up - 沿父目录向上查找文件 proper-lockfile - 进程间和机器间 lockfile 工具 load-json-file - 读取、解析 JSON 文件 write-json-file - 自动将 JSON 序列化写入到文件 fs-write-stream-atomic - 类似 fs.createWriteStream()
的原子操作filenamify - 将字符串转换为有效的文件名 lnfs - 像 ln -fs
一样,强制创建符号链接istextorbinary - 检查文件是文本还是二进制 fs-jetpack - 完全重新设计的、方便日常使用的文件系统 API fs-extra - 增加额外方法的 fs
模块pkg-dir - 查找 npm 包的根目录 filehound - 灵活、流畅的用于文件系统搜索的接口 move-file - 甚至可以跨设备使用的移动文件工具 tempy - 随机获取临时文件或目录的路径
流程控制
Promises 更多 Bluebird - 致力于创新功能和性能的 Promise 库 pify - 将 callback 风格的函数转化为 Promise 风格 delay - 延迟执行 Promise promise-memoize - 拥有过期时间和预加载功能的 Promise 返回值缓存工具 valvelet - 限制 Promise 访问频率的工具 p-map - 可以使用 Promise 的 Map 方法 Observables zen-observable - Observables 的实现 RxJS - 响应式编程 observable-to-promise - 将 Observable 转换为 Promise 更多… Streams Highland.js - 仅使用标准JavaScript 和类似 Node 的流,即可轻松管理同步和异步代码 Callbacks each-async - 异步并发迭代器,如 forEach async - 提供简单,强大的功能来处理异步问题 Channels js-csp - 为 JavaScript 提供连续的通信(例如 Clojurescript core.async 或 Go)
文件流
through2 - 基于 streams2 的轻量流转换器,避免显示子类噪声 from2 - 方便使用的对 ReadableStream 的封装,灵感来自于 through2
get-stream - 以字符串或 Buffer 的形式获取流 into-stream - 将 buffer/string/array/object 转化为流 duplexify - 将可写和可读流转换为单个stream2 双工流 pumpify - 将一系列流合并为单个双工流 peek-stream - 转换流,让你可预览第一行再决定如何解析它 binary-split - 换行符(或任何定界符)分隔符流 byline - 超简单的逐行流读取器 first-chunk-stream - 转换流中的第一个块 pad-stream - 填充流中的每一行 multistream - 将多个流合并为一个流 stream-combiner2 - 从管道输出流 readable-stream - Streams2 and Streams3 核心实现镜像 through2-concurrent - 同时转换对象流
实时
µWebSockets - 高可扩展度的 WebSocket 服务器和客户端库 Socket.io - 实现基于事件的实时双向通信 Faye - 基于 Bayeux 协议的实时客户端-服务器消息总线 SocketCluster - 可运行多 CPU 核心的可扩展的 HTTP + WebSocket 引擎 Primus - 实时框架的抽象层,用于防止模块锁定 deepstream.io - 可扩展的实时微服务框架 Kalm - 低层级 socket 路由和中间件框架 MQTT.js - MQTT 客户端——构建在 TCP/IP 协议上的基于 Pub-sub 的消息协议 rpc-websockets - 基于 WebSocket 实现的 JSON-RPC 2.0 Aedes - 可以在任何流服务器上运行的 MQTT 准系统
图像
sharp - 超快速的用于调整 JPEG,PNG,WebP 和 TIFF 图像大小的模块 image-type - 检测 Buffer / Uint8Array 的图像类型 gm - GraphicsMagick 和 ImageMagick 的封装 lwip - 不需要 ImageMagick 的轻量级图像处理器 pica - 轻量级、高性能的纯 JS 实现的图片尺寸调整器(lanczos3), 当不允许像素化时用 canvas drawImage()
替代jimp - 纯 JavaScript 中的图像处理 probe-image-size - 无需完全下载即可获取大多数图像格式的大小 qrcode - 二维码和条形码生成器
文本
iconv-lite - 转换字符编码. string-length - 获取字符串的真实长度-通过正确计算星号并忽略ansi转义码. camelcase - 将破折号/点号/下划线/空格分隔的字符串转换为驼峰式,案例:foo-bar→fooBar. escape-string-regexp - 转义RegExp特殊字符. execall - 在字符串中查找多个RegExp匹配项. splice-string - 移除或替换字符串的一部分 Array#splice
.indent-string - 缩进字符串中的每一行. strip-indent - 从字符串的每一行中除去前导空格. detect-indent - 检测代码缩进. he - HTML实体编码器/解码器. i18n-node - 具有动态JSON存储的简单翻译模块. babelfish - i18n,复数的语法非常简单. matcher - 简单通配符匹配. unhomoglyph - 规范化视觉上相似的unicode字符. i18next - 国际化框架. nanoid - 小巧、安全、URL友好、唯一的字符串ID生成器.
数字
random-int - 生成随机整数 random-float - 生成随机浮点数 unique-random - 生成连续唯一的随机数 round-to - 将数字四舍五入到指定的小数位数: 1.234
→1.2
数学
ndarray - 多维数组 mathjs - 庞大的数学公式库 math-clamp - 三个数中取出中间值 algebra - 代数 multimath - 使用 WebAssembly 和 JS 创建快速图像数学的核心
日期
Luxon - 用于处理日期和时间的库 date-fns - 现代日期工具 Moment.js - 分析、验证、操作和显示日期 Day.js - Moment.js 之外可选的使用 Immutable 的日期库 dateformat - 日期格式化 tz-format - 带时区格式化时间: 2015-11-30T10:40:35+01:00
cctz - 快速解析, 格式化, 和时区转化工具
URL
normalize-url - 规范化 URL humanize-url - 可读化 URL: http://sindresorhus.com
→sindresorhus.com
url-unshort - 将短地址还原 speakingurl - 通过音译从字符串生成子段 linkify-it - 具有完整 Unicode 支持的链接模式检测器 url-pattern - 比 regex 字符串更简单的 URLs 和其他字符串的模式匹配 embedza - 使用 oEmbed、Open Graph、meta 标记中的信息从 url 创建 HTML 片段/嵌入
数据校验
joi - JavaScript 对象的对象模式描述语言和验证器 is-my-json-valid - 极速 JSON 格式校验工具 property-validator - 用于 Express 的属性校验工具 schema-inspector - JSON API 清理和验证 ajv - 最快的 JSON 概要验证器,支持 v5、v6 和v7 方案 Superstruct - 简单基础的 JavaScript 和 TypeScript 数据验证器
解析
remark - 插件化的 Markdown 处理器 markdown-it - 100% 支持 CommonMark、扩展和语法插件的 Markdown 解析器 parse5 - 快速全功能规范兼容的 HTML 解析器 strip-json-comments - JSON 去除注释 strip-css-comments - CSS 去除注释 parse-json - 有更多错误提示的 JSON 处理工具 URI.js - URL 转化工具 PostCSS - CSS 解析、压缩工具 JSONStream - 流式处理 JSON.parse 和 stringify csv-parser - 旨在比其他任何工具都快的流式 CSV 解析器 PEG.js - 简单的具有出色错误报告功能的语法分析器生成器 x-ray - Web 爬虫工具 nearley - 简单,快速,强大的 JavaScript 解析器 binary-extract - 无需解析整个对象就可以从 JSON 缓冲区中提取一个值的工具 Stylecow - 可扩展插件的,用于解析,操纵和转换现代 CSS 的工具,使其与所有浏览器兼容 js-yaml - 快速的 YAML 解析器 xml2js - XML 到 JavaScript 对象的转换器 Jison - 友好的 JavaScript 解析程序生成器. 与 Bison, Yacc 和 family 一样的思路 google-libphonenumber - 解析、格式化、存储和验证电话号码 ref - 读/写缓冲区中的结构化二进制数据 xlsx-populate - 读/写 Excel XLSX Chevrotain - 非常快速且功能丰富的 JavaScript 解析程序构建工具包 fast-xml-parser - 验证和解析 XML
人性化
pretty-bytes - 将字节数转换成可读的字符串: 1337
→1.34 kB
pretty-ms - 将毫秒数转化为可读时间字符串: 1337000000
→15d 11h 23m 20s
ms - 小巧的毫秒转换工具 pretty-error - 简化的错误信息 read-art - 从任何页面提取可读内容
压缩
yazl - 压缩 yauzl - 解压缩 Archiver - 流式接口的文件归档工具,支持 ZIP 和 TAR 格式 pako - javascript 的高速 zlib 端口(deflate, inflate, gzip) tar-stream - 流式 tar 解析器和生成器,另见tar-fs. decompress - 解压模块,支持 tar
、tar.gz
和zip
文件开箱即用
网络
get-port - 获取一个空闲的端口 ipify - 获取你的公网 IP 地址 getmac - 获取电脑的 MAC 地址 DHCP - DHCP 客户端和服务器 netcat - 纯 JS 实现的 Netcat 端口
数据库
数据库驱动 PostgreSQL - 使用纯 JavaScript 和原生 libpq 实现的 PostgreSQL 客户端 Redis - Redis 客户端 LevelUP - LevelDB MySQL - MySQL 客户端 couchdb-nano - CouchDB 客户端 Aerospike - Aerospike 客户端 Couchbase - Couchbase 客户端 MongoDB - MongoDB 驱动 ODM / ORM Sequelize - 支持 PostgreSQL,SQLite,MySQL 以及更多数据库的 ORM Bookshelf - Backbone.js 风格的PostgreSQL,MySQL 和 SQLite3 的 ORM Massive - PostgreSQL 数据访问工具 Mongoose - 优雅的 MongoDB 对象建模 Waterline - 与数据存储区无关的工具,可大大简化与一个或多个数据库的交互 OpenRecord - 类似于 ActiveRecord 的,用于 PostgreSQL,MySQL,SQLite3 和 RESTful 数据存储的 ORM pg-promise - 基于 Promise 的使用原生 SQL 的 PostgreSQL框架 slonik - 具有严格类型,详细日志记录和断言的 PostgreSQL 客户端 Objection.js - 基于 SQL 查询生成器 Knex 的轻量级 ORM TypeORM - 支持 PostgreSQL,MariaDB,MySQL,SQLite 等数据库的 ORM MikroORM - TypeScript 的基于数据映射的 ORM,使用工作单元和身份映射模式,支持 MongoDB,PostgreSQL,MySQL 和 SQLite Prisma - TypeScript 的自动生成类型并且类型安全的查询构建器,可用于替代 ORM 的现代数据库接入方式,支持 PostgreSQL, MySQL 和 SQLite Query builder Knex - 旨在灵活,可移植且易于使用的 PostgreSQL,MySQL 和 SQLite3 的查询构建器 其他 NeDB - 用 JavaScript 编写的嵌入式持久化数据库 Lowdb - 由 Lodash 支持的小型 JavaScript 数据库. Keyv - 支持多后端的简单键值存储 Finale - 基于 Sequelize 模型生成 RESTful 末端 database-js - 对多种数据库支持的具有类似 JDBC 数据库连接的封装 Mongo Seeding - 使用 JavaScript 和 JSON 文件填充 MongoDB 数据库 @databases - 避免 SQL 注入风险的纯 SQL 查询方式,支持 PostgreSQL, MySQL 和 SQLite3
测试
AVA - 面向未来的测试运行程序 Mocha - 功能丰富的测试框架,使得异步测试简单而又有趣 nyc - 基于 istanbul 构建的代码覆盖工具,可用于子流程. tap - TAP 测试框架 tape - TAP 生产测试 power-assert - 通过标准的 assert 接口提供描述性断言消息 Mochify - 基于 Browserify,Mocha,PhantomJS 和 WebDriver 的测试驱动开发 trevor - 针对多个版本的 Node.js 运行测试,而无需手动切换版本或推送至 Travis CI loadtest - 使用自动化 API 为 Web 应用程序运行负载测试 Sinon.JS - 测试数据模拟 navit - PhantomJS/SlimerJS 封装,用于简化浏览器测试脚本 Nock - 模拟 HTTP 请求和异常 intern - 代码测试栈 toxy - 可追踪的 HTTP 代理,用于模拟故障场景和网络状况 hook-std - stdout/stderr 的钩子和修饰 testen - 使用 NVM 针对多个版本的 Node.js 运行本地测试 Nightwatch - 基于 Selenium WebDriver 的自动化 UI 测试框架 WebdriverIO - 基于 WebDriver 协议的自动化测试 Jest - 简单的 JavaScript 测试 TestCafe - 自动化的浏览器测试 abstruse - 持续集成服务器 CodeceptJS - 端到端测试 Puppeteer - 无头 Chrome Playwright - 用单一 API 实现 Chromium, WebKit 和 Firefox 内核的无头浏览器 nve - 在本地多个版本的Node.js上运行任何命令 axe-core - 自动化 Web UI 测试引擎 testcontainers-node - 提供轻量级的,即用即停的常规数据库、Web 浏览器或者其他任何可以运行在 Docker 容器里的实例
安全
upash - 为所有密码散列算法提供统一的 API themis - 使典型加密方案易于使用的多语言框架:静态数据、已验证的数据交换、传输保护、身份验证等 GuardRails - 在请求中提供安全反馈的 GitHub 应用程序 rate-limiter-flexible - 暴力攻击和 DDoS 攻击防御 crypto-hash - 异步非阻塞哈希 jose-simple - 使用 JOSE( JSON 对象签名和加密)标准对数据进行加密和解密
基准化分析
Benchmark.js - Benchmarking 库,支持高分辨率计数器并且返回有意的统计结果 matcha - 简化的 Benchmarking 实现方案
代码压缩
babili - 基于 Babel 工具链的 ES2015+ 压缩库 UglifyJS2 - JavaScript 压缩工具 clean-css - CSS 压缩工具 minimize - HTML 压缩工具 imagemin - Image 压缩工具
认证
Passport - 简单, 无感的身份验证 Grant - 支持 Express, Koa, Hapi, Fastify, AWS Lambda, Azure, Google Cloud, Vercel以及其他库的权限校验中间件
授权
CASL - UI 和 API 的同构授权 node-casbin - 支持访问控制模型(如 ACL、RBAC 和 ABAC )的授权库
电子邮件
Nodemailer - 处理电子邮件的最快方式 emailjs - 向任何 SMTP 服务器发送带有附件的文本 / HTML 电子邮件 email-templates - 创建、预览和发送自定义电子邮件 MJML - 旨在减少创建响应式电子邮件困难的一种标记语言
任务队列
bull - 持续作业和消息队列 agenda - 基于 MongoDB 的作业调度工具 idoit - 基于 Redis 的具有高级作业控制的队列引擎 node-resque - 基于 Redis 的作业队列 rsmq - 基于 Redis 的消息队列 bee-queue - 高性能的基于 Redis 的任务队列 RedisSMQ - 具有实时监控功能的简单高性能 edis 消息队列 sqs-consumer - 在没有样板文件的情况下构建基于 Amazon 简单队列服务(SQS)的应用程序 better-queue - 不需要 Redis 的简单高效的作业队列
Node.js 管理
n - Node.js 版本控制 nave - Node.js 虚拟环境 nodeenv - 与 Python virtualenv 兼容的Node.js 虚拟环境 nvm for Windows - Windows node 版本控制工具 nodenv - 类似于 Ruby rbenv 的版本管理器,支持自动版本切换
自然语言处理
retext - 一个可扩展的自然语言系统 franc - 检测文本语言 leven - 使用 Levenshtein 距离算法检测两个字符串之间的差异 natural - 自然语言设施 nlp.js - 构建机器人,具有实体提取、情感分析、自动语言识别等功能
进程管理
PM2 - 高级进程管理工具 nodemon - 监听代码变动并自动重新启动服务器 node-mac - 将脚本作为 Mac 守护进程运行并把日志输出到控制台 node-linux - 将脚本作为本机系统服务运行并输出日志到 syslog node-windows - 将脚本作为 Windows 服务运行并输出日志到事件查看器 supervisor - 当脚本崩溃时或者当 *.js
文件更改时重新启动脚本Phusion Passenger - 直接嵌入 Nginx 的易用的进程管理工具
自动化
robotjs - 桌面自动化:控制鼠标、键盘和阅读屏幕 nut.js - 集成 Jest 的具有图像匹配的跨平台原生 GUI 自动化 / 测试框架
AST
Acorn - 轻量、快速的 JavaScript 解析器 babel-parser - 用于 babel 的 JavaScript 解析工具 cherow - 专注于性能和稳定性的 Javascript 解析器
静态网站生成
Wintersmith - 灵活、简约、多平台的静态站点生成器 Assemble - 使用 Node.js、Grunt.js 和Yeoman 的静态站点生成器 DocPad - 具有动态能力和巨大插件生态系统的静态站点生成器 Phenomic - 基于 React 和 Webpack 生态系统的现代静态网站生成器 docsify - Markdown 文站点生成器 Charge - 使用 JSX 和 MDX 的零配置静态站点生成器
内容管理系统
KeystoneJS -基于 Express 和 MongoDB 的 CMS 和 web 应用平台 ApostropheCMS - 基于 Express 和 MongoDB 的,强调直观的前端内容编辑和管理的内容管理系统 Strapi - 用于构建强大 APIs 的内容管理框架(headless-CMS) Tipe - 使用 schema 文件构建基于 GraphQL 和 REST API 的面向开发人员的内容管理系统 Factor - 基于 Vue.js 的仪表盘框架和无头 CMS AdminBro - 为你所有的资源自动生成管理员界面
论坛
nodeBB - 面向现代 web 的论坛平台
写博客
Ghost - 简单强大的发布平台 Hexo - 快速、简单而强大的博客框架
怪诞的
cows - ASCII cows superb - 获取表达 “极好的” 意思的词汇 cat-names - 获取流行的猫名字 dog-names - 获取流行的狗名字 superheroes - 获取超级英雄的名字 supervillains - 获取超级大反派的名字 cool-ascii-faces - 获取酷炫的 ascii 颜文字 cat-ascii-faces - ₍˄·͈༝·͈˄₎◞ ̑̑ෆ⃛ (=ↀωↀ=)✧ (^・o・^)ノ”
nerds - 获取宅男话题的数据,例如哈利波特,星战,宝可梦
序列化
snappy - Google Snappy 压缩库的绑定 protobuf - 协议缓冲区 compactr - Compactr 协议
其他
execa - 比 child_process
更好cheerio - 快速, 灵活, 为服务端设计的借鉴了 jQuery 设计的操作工具 Electron - 使用 Web 技术开发跨平台桌面应用 (You might like awesome-electron) open - 打开网站、文件、可执行文件等 hasha - 使散列变得简单,获取缓冲区/字符串/流/文件的哈希 dot-prop - 使用 .
路径方式获取一个套嵌对象的属性onetime - 执行一次性函数 mem - 记忆函数——一种优化技术,通过缓存相同输入函数的执行结果来加速连续函数调用 import-fresh - 调用模块时绕开缓存 strip-bom - 从字符串 / Buffer / Stream中解除 UTF-8 BOM 问题 os-locale - 获取系统 locale ssh2 - SSH2 客户端和服务端模块 adit - SSH 相关工具 import-lazy - 懒加载一个模块 file-type - 获得一个 Buffer 的文件类型 Bottleneck - 速率限制器,使流量控制变得容易 ow - 函数参数验证 webworker-threads - 使用原生线程的轻量级 Web Worker API clipboardy - 访问系统的剪贴板 (复制和粘贴) node-pre-gyp - 使从二进制发布安装 Node.js C++ 插件更简单的工具 opencv - Javascript 的 OpenCV 封装,计算机图形处理库 dotenv - 从 .env 文件加载环境变量. remote-git-tags - 从 git 远程仓库获取 tags semver - 语义版本分析器 Faker.js - 测试数据批量生成工具 (推荐阅读:《2.8 万 Star!生成虚假内容的神器:faker.js》) nodegit - 原生 Node 封装的 Git 工具 json-strictify - 安全地将值序列化为 JSON ,不丢失数据或进入无限循环 resolve-from - 从一个给定的路径执行某个模块的 resolve 方法 simplecrawler - 事件驱动的 web 爬虫程序 jsdom - HTML 和 DOM 的 JavaScript 实现 hypernova - 服务端渲染 JavascSript 视图 @sindresorhus/is - 检查值和类型是否匹配 env-dot-prop - 使用 .
路径获取、设置或删除 process.env 的嵌套属性emittery - 简单而现代的异步事件发生器 node-video-lib - 纯 JavaScript 编写的,用于处理 MP4 和 FLV 视频文件并为 HLS 流创建 MPEG-TS 块的视频工具库 basic-ftp - FTP/FTPS 客户端 cashify - 汇率转换 genepi - 自动从 C++ 代码中生成 Node.js addon husky - 创建 Git 钩子脚本 patch-package - 对 npm 依赖进行修复和保持 editly - 声明式视频编辑 API
Node 社群
我组建了一个氛围特别好的 Node.js 社群,里面有很多 Node.js小伙伴,如果你对Node.js学习感兴趣的话(后续有计划也可以),我们可以一起进行Node.js相关的交流、学习、共建。下方加 考拉 好友回复「Node」即可。
如果你觉得这篇内容对你有帮助,我想请你帮我2个小忙:
1. 点个「在看」,让更多人也能看到这篇文章 2. 订阅官方博客 www.inode.club 让我们一起成长 点赞和在看就是最大的支持❤️
评论