【导读】:Node.js 是一个开源、跨平台的,用于编写服务器和命令行的 JavaScript 运行时工具。awesome-nodejs 是sindresorhus发起维护的 Node.js 资源列表,内容包括:命令行工具、日志、调试、HTTP、构建工具、文件系统、模板、Web 框架、流程控制、文本、图片和数据校验等。
包: 黑科技 命令行程序 函数式编程 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 axios 基于 Promise 的 HTTP 客户端(也可以在浏览器中工作) wreck HTTP 客户端工具. download 使下载和提取文件变得轻松 http proxy superagent HTTP 请求库 node fetch flashheart REST 客户端 http fake cacheable request gotql 基于 got 构建的 GraphQL 请求库 global agent 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 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 drawille 使用 Unicode 盲文字符在终端上绘图 update-notifier 升级 CLI 应用程序的通知 ascii-charts 终端下的 ASCII 柱状图 progress 灵活的 ASCII 进度条 insight 使用 metrics 向 Google Analytics 发送匿名报告来帮助你理解你的工具是怎样被使用的 cli-cursor 显示或关闭 CLI 光标 columnify 将控制台文本打印按列输出,支持单元格修饰 cli-columns 列式输出 Unicode 和 Ansi cfonts 控制台下的性感 ASCII 字体 multispinner 多样的、可同时独立控制的 CLI 旋转指示器 omelette Shell 下的自动补全 cross-env 跨平台的环境变量设置 shelljs 可移植的 Unix shell 命令 sudo-block 禁止用户用 root 权限使用你的程序 loud-rejection 强制对未加处理的 promise rejections 错误给出提示 sparkly 生成迷你图 ▁▂▃▅▂▇ Bit 在存储库中创建、维护、查找和使用小型模块和组件 gradient-string 为终端输出添加漂亮的色彩渐变 oc-if 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 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 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 为你所有的资源自动生成管理员界面
论坛
写博客
包名 描述 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