全网最全面的 Node.js 资源汇总推荐,4W Star!
Posted 梦想全栈者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全网最全面的 Node.js 资源汇总推荐,4W Star!相关的知识,希望对你有一定的参考价值。
作者@前哨君|地址@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
您好,我叫芷淇。
前猿辅导丶搜狐工程师,目前在一家福利超好的外企做资深工程师。
目前团队缺人,欢迎找我内推或帮你内推到其他公司岗位,全程跟进。
扫码下方二维码加入全栈进阶群,群里都是程序员,产品经理,技术经理,技术总监,CTO。学习,分享资源,一起成长。2021年抱团取暖!
以上是关于全网最全面的 Node.js 资源汇总推荐,4W Star!的主要内容,如果未能解决你的问题,请参考以下文章
全网最详细中英文ChatGPT-GPT-4示例文档-读书书单推荐从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)