新手上路
2026-2-4 17:41
主楼
官方
软件包
疯狂的科学
- webtorrent- 用于 Node.js 和浏览器的流式 torrent 客户端。
- peerflix- 流式 torrent 客户端。
- ipfs- 一种分布式文件系统,旨在连接所有计算设备使用相同的文件系统。
- stackgl- 基于 browserify 和 npm 构建的开源 WebGL 软件生态系统。
- peerwiki- 在 BitTorrent 上的整个维基百科。
- peercast- 将 torrent 视频流到 Chromecast。
- BitcoinJS- 简洁、易读、经过验证的比特币库。
- Bitcore- 纯净且强大的比特币库。
- PDFKit- PDF 生成库。
- turf- 模块化地理空间处理和分析引擎。
- webcat- 基于 WebRTC 的跨网络点对点管道,使用 GitHub 的私钥/公钥进行身份验证。
- NodeOS- 首款由 npm 驱动的操作系统。
- YodaOS- 人工智能操作系统。
- Brain.js- 机器学习框架。
- Pipcook- 用于创建机器学习管道的前端算法框架。
- Cytoscape.js- 图论(又名网络)建模与分析。
- js-git- Git 的 JavaScript 实现。
- xlsx- 纯 JavaScript Excel 电子表格读取和写入工具。
- isomorphic-git- 纯 JavaScript 实现的 Git。
命令行应用程序
- np- 更好的 npm publish
- npm-name- 检查 npm 上的包名是否可用。
- gh-home- 在当前目录下打开仓库的 GitHub 页面。
- npm-home- 打开包的 npm 页面。
- trash- rm 的更安全的替代方案。
- speed-test- 测试您的网络连接速度和延迟。
- pageres- 捕获网站截图。
- cpy- 复制文件。
- vtop- 更好的 top,带有漂亮的图表。
- empty-trash- 清空回收站。
- is-up- 检查网站是否正常。
- is-online- 检查网络连接是否正常。
- public-ip- 获取您的公网 IP 地址。
- clipboard-cli- 在终端中复制和粘贴。
- XO- 使用 JavaScript happiness 风格强制执行严格的代码风格。
- ESLint- JavaScript 的可插拔 linting 工具。
- David- 告诉你你的 npm 依赖何时已过时。
- http-server- 简单、零配置的命令行 HTTP 服务器。
- Live Server- 具备 livereload 功能的开发 HTTP 服务器。
- bcat- 将命令输出重定向到网页浏览器。
- normit- 在终端中使用 Google 翻译并支持语音合成。
- fkill- 美妙地终止进程。跨平台。
- pjs- 可管道化 JavaScript。从终端快速过滤、映射和归约。
- license-checker- 检查您应用程序依赖项的许可证。
- browser-run- 轻松在浏览器环境中运行代码。
- tmpin- 为任何接受文件输入的 CLI 应用程序添加 stdin 支持。
- wallpaper- 更改桌面壁纸。
- pen- 从您最喜欢的编辑器中在浏览器中实时预览 Markdown。
- dark-mode- 切换 macOS 深色模式。
- Jsome- 带有可配置颜色和缩进的 JSON 美观打印。
- mobicon- 移动应用图标生成器。
- mobisplash- 移动应用启动画面生成器。
- diff2html-cli- 美化 git diff 为 HTML 的生成器。
- trymodule- 在终端中试用 npm 包。
- jscpd- 源代码复制/粘贴检测器。
- atmo- 服务器端 API 模拟
- 自动安装- 在您编码时自动安装依赖项。
- 模块成本- 查找哪些依赖项正在拖慢你的速度。
- localtunnel- 将您的本地环境暴露给全世界。
- 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- 一款专注于灵活函数组合的工具库,通过自动柯里化和反转参数顺序实现。避免修改数据。
- Mout- 与其他现有解决方案最大的不同在于,你可以选择仅加载所需的模块/函数,没有额外开销。
- RxJS- 用于转换、组合和查询各种数据的函数式响应式库。
- Kefir.js- 专注于高性能和低内存使用的响应式库。
HTTP
- got- 内置 http 模块的更友好的接口。
- undici- 完全从零开始编写的高性能 HTTP 客户端,无依赖。
- ky-universal- 基于 Fetch 的通用 HTTP 客户端。
- node-fetch- Node.js 的 window.fetch。
- axios- 基于 Promise 的 HTTP 客户端(也可在浏览器中使用)。
- superagent- HTTP 请求库。
- http-fake-backend- 通过可配置的路由提供 JSON 文件或 JavaScript 对象的内容来构建一个假的后端。
- cacheable-request- 使用 RFC 兼容的缓存支持封装原生 HTTP 请求。
- gotql- 基于 got 构建的 GraphQL 请求库。
- global-agent- 可通过环境变量配置的全局 HTTP/HTTPS 代理代理。
- smoke- 基于文件的 HTTP 模拟服务器,具有录制功能。
- purest- REST 客户端。
调试 / 分析
- 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 调试工作流。
- dats- 极简且无依赖的 StatsD 客户端。
日志记录
- pino- 受 Bunyan 启发的极快日志记录器。
- winston- 多传输异步日志记录库。
- console-log-level- 最简单的日志记录器,支持日志级别和自定义前缀。
- storyboard- 端到端、分层、实时、多彩的日志和故事。
- consola- 控制台日志记录器。
命令行工具
- chalk- 命令行字符串样式处理得当。
- meow- 命令行助手。
- yargs- 自动生成优雅用户界面的命令行解析器。
- ora- 优雅的终端旋转器。
- get-stdin- 更便捷的 stdin。
- log-update- 通过在终端中覆盖先前输出进行日志记录。适用于渲染进度条、动画等。
- Ink- 用于交互式命令行应用的 React。
- listr2- 终端任务列表。
- conf- 为您的应用或模块提供简单的配置处理。
- ansi-escapes- 用于操作终端的 ANSI 转义码。
- log-symbols- 各种日志级别的彩色符号。
- figures- 带有 Windows CMD 回退的 Unicode 符号。
- boxen- 在终端中创建框。
- terminal-link- 在终端中创建可点击的链接。
- terminal-image- 在终端中显示图像。
- string-width- 获取字符串的视觉宽度 - 显示它所需的列数。
- cli-truncate- 在终端中将字符串截断到特定宽度。
- blessed- 类 curses 的库。
- Inquirer.js- 交互式命令行提示符。
- yn- 解析是/否类型的值。
- cli-table3- 美观的 Unicode 表格。
- drawille- 使用 Unicode 盲文字符在终端上绘图。
- ascii-charts- 终端中的 ASCII 条形图。
- progress- 灵活的 ASCII 进度条。
- insight- 通过匿名向 Google Analytics 报告使用指标,帮助您了解工具的使用情况。
- cli-cursor- 开关 CLI 光标。
- cli-columns- 列表化 Unicode 和 ANSI 安全文本。
- cfonts- 控制台中的酷炫 ASCII 字体。
- multispinner- 多个、同时、可单独控制的 CLI 旋转器。
- omelette- Shell 自动补全助手。
- cross-env- 跨平台设置环境变量。
- shelljs- 便携式 Unix shell 命令。
- sudo-block- 阻止用户以 root 权限运行您的应用程序。
- sparkly- 生成 sparklines ▁▂▃▅▂▇。
- Bit- 跨多个仓库创建、维护、查找和使用小型模块和组件。
- gradient-string- 终端输出中的美丽彩色渐变。
- oclif- 带有解析器、自动文档、测试和插件的 CLI 框架。
- terminal-size- 可靠地获取终端窗口大小。
- Cliffy- 交互式 CLI 框架。
- zx- 使用 JavaScript 编写 shell 脚本。
构建工具
- parcel- 极速,无需配置的 Web 应用打包工具。
- webpack- 用于浏览器打包模块和资源。
- rollup- 新一代 ES2015 模块打包工具。
- gulp- 流式处理和快速构建系统,更注重代码而非配置。
- Broccoli- 快速、可靠的资源管道,支持恒定时间的重建和紧凑的构建定义。
- Brunch- 前端 Web 应用构建工具,具有简单的声明式配置、快速增量编译和主观的工作流程。
- FuseBox- 快速构建系统,结合了 webpack、JSPM 和 SystemJS 的强大功能,并具有一流的 TypeScript 支持。
- pkg- 将您的 Node.js 项目打包成可执行文件。
- Vite- 前端构建工具,支持热模块替换和静态资源打包。
硬件
- johnny-five- 基于 Firmata 的 Arduino 框架。
- serialport- 用于读写串行端口。
- usb- USB 库。
- i2c-bus- I2C 串行总线访问。
- onoff- GPIO 访问和中断检测。
- spi-device- SPI 串行总线访问。
- pigpio- 快速 GPIO、PWM、舵机控制、状态变化通知和中断处理,适用于 Raspberry Pi。
- gps- NMEA 解析器,用于处理 GPS 接收器。
- modbus-serial- MODBUS-RTU(串行和 TCP)的纯 JavaScript 实现。
模板化
- marko- 基于 HTML 的模板引擎,将模板编译为 CommonJS 模块,并支持流式处理、异步渲染和自定义标签。
- nunjucks- 具有继承、异步控制等功能的模板引擎(受 jinja2 启发)。
- handlebars.js- Mustache 模板的超集,增加了强大的辅助功能等更高级的块。
- EJS- 简单无偏见的模板语言。
- Pug- 高性能模板引擎,深受 Haml 影响。
Web 框架
- Fastify- 快速且低开销的 Web 框架。
- Next.js- 适用于服务器渲染的通用 JavaScript Web 应用的极简框架。
- Nuxt.js- 用于服务器渲染 Vue.js 应用的极简框架。
- Hapi- 用于构建应用程序和服务的框架。
- Micro- 极简微服务框架,采用异步方式。
- Koa- 由 Express 背后的团队设计的框架,旨在成为更小、更富有表现力、更健壮的 Web 应用和 API 基础。
- Express- Web 应用框架,为构建单页和多页以及混合式 Web 应用提供强大的功能集。
- Feathers- 受 Express 精神启发的微服务框架。
- LoopBack- 用于创建 REST API 并轻松连接到后端数据源的强大框架。
- Meteor- 超级简单、数据库无处不在、数据在传输中、纯 JavaScript 的 Web 框架。(你可能喜欢 awesome-meteor)
- Restify- 使您能够构建正确的 REST Web 服务。
- ThinkJS- 支持 ES2015+ 的框架,具有 WebSocket 和 REST API。
- ActionHero- 用于创建可重用和可扩展的 TCP 套接字、WebSocket 和 HTTP 客户端 API 的框架。
- seneca- 用于编写微服务的工具包。
- AdonisJs- 一个基于依赖注入和 IoC 容器的 Node.js 真 MVC 框架。
- Moleculer- 高速且强大的微服务框架。
- Nest- 受 Angular 启发的框架,用于构建高效且可扩展的服务器端应用程序。
- TypeGraphQL- 基于 TypeScript 创建 GraphQL API 的现代框架,使用类和装饰器。
- Tinyhttp- 现代且快速的类似 Express 的 Web 框架。
- Marble.js- 基于 TypeScript 和 RxJS 的函数式响应式框架,用于构建服务器端应用。
- Lad- 由前 Express TC 和 Koa 成员开发的框架,捆绑了 Web、API、作业和代理服务器。
- Ts.ED- 用于在 Express.js 或 Koa.js 之上构建服务器端应用的直观 TypeScript 框架。
- Hono- 轻量级且高效的 Web 框架。
文档
- documentation.js- 支持 ES2015+ 和 flow 注释的 API 文档生成器。
- Docco- 文档生成器,生成 HTML 文档,将您的注释与代码交错显示。
- JSDoc- 类似于 JavaDoc 或 PHPDoc 的 API 文档生成器。
- Docusaurus- 利用 React 和 Markdown 的文档网站生成器,具有翻译和版本控制功能。
文件系统
- del- 使用通配符删除文件/文件夹。
- globby- 支持多种模式匹配的文件 glob 工具。
- chokidar- 文件系统监视器,稳定fs.watch和fs.watchFile的事件,并在 macOS 上使用原生fsevents。
- find-up- 通过向上遍历父目录查找文件。
- proper-lockfile- 跨进程和跨机器的锁文件工具。
- load-json-file- 读取并解析 JSON 文件。
- write-json-file- 将 JSON 字符串化并原子地写入文件。
- fs-write-stream-atomic- 类似于 fs.createWriteStream(),但支持原子操作。
- filenamify- 将字符串转换为有效的文件名。
- istextorbinary- 检查文件是否为文本或二进制。
- fs-jetpack- 为日常使用而完全重新设计的文件系统 API。
- fs-extra- fs 模块的额外方法。
- package-directory- 查找 npm 包的根目录。
- filehound- 灵活且流畅的接口,用于搜索文件系统。
- move-file- 移动文件,即使跨设备也能工作。
- tempy- 获取一个随机的临时文件或目录路径。
控制流
- Promises
- pify- 将回调风格的函数转换为 Promise。
- delay- 延迟 Promise 指定的时间。
- promise-memoize- 对返回 Promise 的函数进行缓存,支持过期和预取。
- valvelet- 限制返回 Promise 的函数的执行速率。
- p-map- 并发地对 Promise 进行映射。
- 更多…
- 可观察对象
- RxJS- 反应式编程。
- observable-to-promise- 将 Observable 转换为 Promise。
- 更多…
- 流
- Highland.js- 可以轻松管理同步和异步代码,仅需使用标准的 JavaScript 和类似 Node.js 的流。
流
- get-stream- 将流作为字符串或缓冲区获取。
- from2- ReadableStream 的便捷包装器,灵感来自 through2。
- into-stream- 将缓冲区/字符串/数组/对象转换为流。
- duplexify- 将可写入和可读取流转换为单个 streams2 双工流。
- pumpify- 将流数组组合为单个双工流。
- peek-stream- 转换流,允许你在决定如何解析之前预览第一行。
- binary-split- 按换行符(或任何分隔符)分割的流。
- byline- 超简单的逐行读取流。
- first-chunk-stream- 转换流中的第一个数据块。
- pad-stream- 对流中的每一行进行填充。
- multistream- 将多个流组合成一个流。
- readable-stream- 核心中的 Streams2 和 Streams3 实现的镜像。
- through2-concurrent- 并行转换对象流。
实时
- µWebSockets- 高可扩展的 WebSocket 服务器和客户端库。
- Socket.io- 支持实时双向事件通信。
- Faye- 基于 Bayeux 协议的实时客户端-服务器消息总线。
- SocketCluster- 可扩展的 HTTP + WebSocket 引擎,支持在多个 CPU 核心上运行。
- Primus- 一个用于实时框架的抽象层,以防止模块锁定。
- deepstream.io- 可扩展的实时微服务框架。
- Kalm- 低级套接字路由和中间件框架。
- MQTT.js- MQTT 客户端 - 基于发布/订阅的消息协议,用于在 TCP/IP 协议之上使用。
- rpc-websockets- 基于 WebSockets 的 JSON-RPC 2.0 实现。
- Aedes- 可以在任何流服务器上运行的精简版 MQTT 服务器。
图片
- sharp- 用于调整 JPEG、PNG、WebP 和 TIFF 图片的最快模块。
- image-type- 检测图像类型。
- image-dimensions- 获取图像的尺寸。
- lwip- 轻量级图像处理器,无需 ImageMagick。
- pica- 纯 JS 的高质量、快速缩放(lanczos3),是 canvas drawImage() 的替代方案,当不允许出现像素化时使用。
- jimp- 纯 JavaScript 的图像处理。
- qrcode- 二维码和条形码生成器。
- ImageScript- 使用 WebAssembly 在 JavaScript 中进行图像处理,以实现高性能。
文本
- iconv-lite- 转换字符编码。
- string-length- 获取字符串的真实长度 - 通过正确计算天文符号并忽略 ANSI 脱机码。
- camelcase- 将一个由短横线/点/下划线/空格分隔的字符串转换为 camelCase:foo-bar → fooBar。
- escape-string-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 生成器。
- StegCloak- 在明处隐藏秘密于字符串之中。
数字
- random-int- 生成一个随机整数。
- random-float- 生成一个随机浮点数。
- unique-random- 生成连续唯一的随机数。
- round-to- 将数字舍入到指定的小数位数:1.234 → 1.2。
数学
- ndarray- 多维数组。
- mathjs- 一个功能丰富的数学库。
- math-clamp- 限制数值。
- algebra- 代数结构。
- multimath- 核心库,用于在 WebAssembly 和 JS 中创建快速图像数学运算。
日期
- Luxon- 用于处理日期和时间的库。
- date-fns- 现代日期工具库。
- Day.js- Moment.js 的不可变日期库替代品。
- dateformat- 日期格式化。
- tz-format- 格式化带时区的日期:2015-11-30T10:40:35+01:00。
- cctz- 日期的快速解析、格式化和时区转换。
URL
- normalize-url- 规范化一个 URL。
- humanize-url- 将 URL 人类化:https://sindresorhus.com → sindresorhus.com。
- url-unshort- 展开缩短的 URL。
- speakingurl- 从字符串生成带转写形式的 slug。
- linkify-it- 支持完整 Unicode 的链接模式检测器。
- url-pattern- 比正则表达式匹配 URL 和其他字符串的模式更简单。
- embedza- 使用 oEmbed、Open Graph、元标签中的信息从 URL 创建 HTML 片段/嵌入。
数据验证
- joi- JavaScript 对象的对象模式描述语言和验证器。
- is-my-json-valid- 使用代码生成技术的 JSON Schema 验证器,速度极快。
- property-validator- Express 的便捷属性验证工具。
- schema-inspector- JSON API 清理和验证工具。
- ajv- 速度最快的 JSON Schema 验证器。支持 v5、v6 和 v7 提案。
- Superstruct- 简单且可组合的 JavaScript(和 TypeScript)数据验证方式。
- yup- 对象模式验证。
- zod- TypeScript 首先的模式验证,具有静态类型推断。
解析
- remark- 基于插件的 Markdown 处理器。
- markdown-it- 支持 100% CommonMark 的 Markdown 解析器,具有扩展和语法插件。
- parse5- 高速符合规范的 HTML 解析器。
- @parcel/css- 用 Rust 编写的 CSS 解析器、转换器和压缩器。
- strip-json-comments- 从 JSON 中移除注释。
- strip-css-comments- 从 CSS 中移除注释。
- parse-json- 使用更友好的错误解析 JSON。
- URI.js- URL 变更。
- JSONStream- 流式处理 JSON.parse 和 stringify。
- neat-csv- 快速 CSV 解析器。上述的回调接口。
- csv-parser- 一种流式 CSV 解析器,旨在比其他所有解析器都快。
- PEG.js- 一个简单的解析器生成器,能够生成快速解析器并具有出色的错误报告功能。
- x-ray- 网络爬虫工具。
- nearley- 简单、快速、强大的 JavaScript 解析器。
- binary-extract- 从 JSON 缓冲区中提取值,而无需解析整个内容。
- Stylecow- 解析、操作和转换现代 CSS,使其与所有浏览器兼容。支持插件扩展。
- js-yaml- 非常快的 YAML 解析器。
- xml2js- XML 到 JavaScript 对象转换器。
- Jison- 友好的 JavaScript 解析器生成器。它与 Bison、Yacc 及其家族有共同的基因。
- google-libphonenumber- 解析、格式化、存储和验证电话号码。
- ref- 在 Buffers 中读取/写入结构化二进制数据。
- 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- 高速 zlib 纯 JavaScript 实现(deflate、inflate、gzip)。
- tar-stream- 流式 tar 解析器和生成器。另请参阅 tar-fs。
网络
- get-port- 获取一个可用的端口。
- ipify- 获取您的公网 IP 地址。
- getmac- 获取计算机的 MAC 地址。
- DHCP- DHCP 客户端和服务器。
- netcat- 纯 JS 实现的 Netcat 端口。
数据库
- 驱动程序
- PostgreSQL- PostgreSQL 客户端。纯 JavaScript 和原生 libpq 绑定。
- Redis- Redis 客户端。
- LevelUP- LevelDB。
- MySQL- MySQL 客户端。
- couchdb-nano- CouchDB 客户端。
- Aerospike- Aerospike 客户端。
- Couchbase- Couchbase 客户端。
- MongoDB- MongoDB 驱动。
- ODM / ORM
- Sequelize- 支持多方言的 ORM。支持 PostgreSQL、SQLite、MySQL 等。
- Bookshelf- Backbone.js 风格的 PostgreSQL、MySQL 和 SQLite3 的 ORM。
- Mongoose- 优雅的 MongoDB 对象建模。
- Waterline- 一种与数据库无关的工具,极大地简化了与一个或多个数据库的交互。
- OpenRecord- PostgreSQL、MySQL、SQLite3 和 RESTful 数据存储的 ORM。类似于 ActiveRecord。
- pg-promise- 使用 Promise 的 PostgreSQL 原生 SQL 框架。
- slonik- 具有严格类型、详细日志和断言的 PostgreSQL 客户端。
- Objection.js- 基于 SQL 查询构建器 Knex 构建的轻量级 ORM。
- TypeORM- PostgreSQL、MariaDB、MySQL、SQLite 及更多数据库的 ORM。
- MikroORM- 基于 Data Mapper、Unit of Work 和 Identity Map 模式的 TypeScript ORM。支持 MongoDB、PostgreSQL、MySQL 和 SQLite。
- Prisma- 现代数据库访问(ORM 替代方案)。TypeScript 中的自动生成且类型安全的查询构建器。支持 PostgreSQL、MySQL & SQLite。
- Drizzle ORM- 支持多种数据库(如 PostgreSQL)的 TypeScript ORM。
- 查询构建器
- Knex- 用于 PostgreSQL、MySQL 和 SQLite3 的查询构建器,设计灵活、便携且易于使用。
- 其他
- NeDB- 用 JavaScript 编写的嵌入式持久化数据库。
- Lowdb- 由 Lodash 支持的小型 JavaScript 数据库。
- Keyv- 支持多种后端的简单键值存储。
- Finale- 用于 Sequelize 模型的 RESTful 端点生成器。
- database-js- 支持多种数据库的 JDBC 风格连接封装。
- Mongo Seeding- 使用 JavaScript 和 JSON 文件填充 MongoDB 数据库。
- @databases- 使用纯 SQL 查询 PostgreSQL、MySQL 和 SQLite3,且无 SQL 注入风险。
- pg-mem- 用于测试的内存 PostgreSQL 实例。
测试
- AVA- 未来感的测试运行器。
- Mocha- 功能丰富的测试框架,使异步测试变得简单有趣。
- nyc- 基于 istanbul 构建的代码覆盖率工具,可与子进程协同工作。
- tap- TAP 测试框架。
- tape- 生成 TAP 的测试沙盒。
- power-assert- 通过标准断言接口提供描述性断言消息。
- Mochify- 使用 Browserify、Mocha、PhantomJS 和 WebDriver 进行 TDD。
- trevor- 无需手动切换版本或推送到 Travis CI,即可针对多个 Node.js 版本运行测试。
- loadtest- 为您的 Web 应用程序运行负载测试,并提供用于自动化的 API。
- 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 测试。
- Vitest- 由 Vite 驱动的快速单元测试框架。
- TestCafe- 自动化浏览器测试。
- abstruse- 持续集成服务器。
- CodeceptJS- 端到端测试。
- Puppeteer- 无头 Chrome。
- Playwright- 使用单一 API 支持无头 Chromium、WebKit 和 Firefox。
- nve- 在本地多个 Node.js 版本上运行任何命令。
- axe-core- 自动化 Web UI 测试的可访问性引擎。
- testcontainers-node- 提供轻量级、可一次性丢弃的常见数据库、Selenium 网络浏览器或其他任何可以在 Docker 容器中运行的实例。
安全
- upash- 所有密码哈希算法的统一 API。
- themis- 多语言框架,用于简化典型加密方案的使用:静态数据、认证数据交换、传输保护、认证等。
- GuardRails- GitHub 应用,在拉取请求中提供安全反馈。
- rate-limiter-flexible- 防止暴力破解和 DDoS 攻击。
- crypto-hash- 异步非阻塞哈希。
- jose-simple- 使用 JOSE(JSON 对象签名和加密)标准对数据进行加密和解密。
基准测试
- Benchmark.js- 支持高精度计时器的基准测试库,可返回具有统计意义的测试结果。
压缩工具
- babel-minify- 基于 Babel 工具链的 ES2015+感知压缩工具。
- UglifyJS2- JavaScript 压缩工具。
- clean-css- CSS 压缩工具。
- minimize- HTML 压缩工具。
- imagemin- 图片压缩工具。
身份验证
- Passport- 简单、不显眼的身份验证。
- Grant- 适用于 Express、Koa、Hapi、Fastify、AWS Lambda、Azure、Google Cloud、Vercel 等的 OAuth 提供者。
授权
- CASL- UI 和 API 的等价授权。
- node-casbin- 支持 ACL、RBAC 和 ABAC 等访问控制模型的授权库。
邮件
- Nodemailer- 处理邮件最快的方式。
- emailjs- 向任何 SMTP 服务器发送带有附件的文本/HTML 邮件。
- email-templates- 创建、预览和发送自定义电子邮件模板。
- MJML- 一种标记语言,旨在减少创建响应式电子邮件的痛苦。
- Forward Email- 开源且可自托管的电子邮件服务。
任务队列
- bull- 持久化任务和消息队列。
- agenda- 基于 MongoDB 的任务调度。
- idoit- 基于 Redis 的高级任务控制任务队列引擎。
- node-resque- 基于 Redis 的任务队列。
- rsmq- 基于 Redis 的消息队列。
- bee-queue- 高性能的基于 Redis 的任务队列。
- RedisSMQ- 简单高性能的带实时监控的 Redis 消息队列。
- sqs-consumer- 无需样板代码,即可构建基于 Amazon Simple Queue Service (SQS) 的应用程序。
- better-queue- 当无法使用 Redis 时,一个简单高效的作业队列。
- bullmq- 持久化的作业和消息队列。
- bree- 支持工作线程、cron、日期和人类语法的作业任务调度器。
- graphile-worker- 高性能 PostgreSQL 任务队列。
Node.js 管理
- n- Node.js 版本管理。
- nave- Node.js 虚拟环境。
- nodeenv- 兼容 Python 的 virtualenv 的 Node.js 虚拟环境。
- nvm for Windows- Windows 版本管理工具。
- nodenv- 类似 Ruby 的 rbenv 的版本管理器,支持自动版本切换。
- fnm- 基于 Rust 构建的跨平台 Node.js 版本管理器。
跨平台集成
- napi-rs- 通过 Node-API 以 Rust 语言构建编译型 Node.js 插件的框架。
- Neon- 用于编写安全且高效的 Node.js 原生模块的 Rust 绑定。
- Edge.js- 在 Windows、macOS 和 Linux 上以同一进程运行 .NET 和 Node.js 代码。
- DotNetJS- 使用此 .NET 互操作性层在 Node.js 中消费 .NET 库。
自然语言处理
- retext- 一个可扩展的自然语言系统。
- franc- 检测文本的语言。
- leven- 使用 Levenshtein 距离算法测量两个字符串之间的差异。
- natural- 自然语言工具。
- nlp.js- 构建机器人,具有实体提取、情感分析、自动语言识别等功能。
进程管理
- PM2- 高级进程管理器。
- nodemon- 监测您的应用程序中的更改并自动重启服务器。
- node-mac- 以原生 Mac 守护进程方式运行脚本并将日志记录到控制台应用程序。
- node-linux- 以原生系统服务方式运行脚本并将日志记录到 syslog。
- node-windows- 以原生 Windows 服务方式运行脚本,并记录到事件查看器中。
- supervisor- 当脚本崩溃时重启脚本,或在 *.js 文件更改时重启。
- Phusion Passenger- 直接集成到 Nginx 的友好进程管理器。
自动化
AST
- Acorn- 轻量级、快速的 JavaScript 解析器。
- babel-parser- Babel 中使用的 JavaScript 解析器。
静态网站生成器
- DocPad- 具有动态能力和庞大插件生态系统的静态网站生成器。
- docsify- 无需静态构建 HTML 文件的 Markdown 文档网站生成器。
- Charge- 基于 JSX 和 MDX 的零配置静态网站生成器。
内容管理系统
- KeystoneJS- 基于 Express 和 MongoDB 构建的内容管理系统和 Web 应用平台。
- ApostropheCMS- 基于 Express 和 MongoDB 构建的内容管理系统,强调直观的前端内容编辑和管理。
- Strapi- 用于构建强大 API 的内容管理框架(无头 CMS)。
- Factor- Vue.js 仪表盘框架和无头 CMS。
- AdminBro- 自动生成的资源 CRUD 管理面板。
- Graphweaver- CMS 和无头 GraphQL API。
论坛
- nodeBB- 现代网络的论坛平台。
博客
奇怪
- cows- ASCII 奶牛。
- superb- 获取像 superb 这样的优秀词语。
- cat-names- 获取流行的猫名。
- dog-names- 获取流行的狗名。
- superheroes- 获取超级英雄的名字。
- supervillains- 获取超级反派的名字。
- cool-ascii-faces- 获取一些酷炫的 ASCII 表情。
- cat-ascii-faces- ₍˄·͈༝·͈˄₎◞ ̑̑ෆ⃛ (=ↀωↀ=)✧ (^・o・^)ノ”
- nerds- 从哈利·波特、星球大战和宝可梦等“技术宅”主题中获取数据。
序列化
其他
- execa- 更好的 child_process。
- cheerio- 高效、灵活且精简的核心 jQuery 实现,专为服务器设计。
- 打开- 用于打开网站、文件、可执行文件等。
- hasha- 简化哈希计算。获取缓冲区/字符串/流/文件的哈希值。
- dot-prop- 使用点路径从一个嵌套对象中获取属性。
- onetime- 只运行一次函数。
- mem- 函数缓存 - 一种优化技术,通过缓存具有相同输入的调用结果来加速连续的函数调用。
- strip-bom- 从字符串/缓冲区/流中移除 UTF-8 字节顺序标记 (BOM)。
- os-locale- 获取系统区域设置。
- ssh2- SSH2 客户端和服务器模块。
- adit- 简化 SSH 隧道。
- file-type- 检测 Buffer 的文件类型。
- Bottleneck- 实现限流操作简易的速率限制器。
- webworker-threads- 基于原生线程的轻量级 Web Worker API 实现。
- clipboardy- 访问系统剪贴板(复制/粘贴)。
- node-pre-gyp- 可以轻松地从二进制发布和安装 Node.js C++ 扩展。
- opencv- OpenCV 的绑定。事实上的计算机视觉库。
- dotenv- 从.env 文件加载环境变量。
- semver- 语义版本解析器。
- nodegit- Git 的原生绑定。
- json-strictify- 安全地将值序列化为 JSON,不会丢失数据或陷入无限循环。
- jsdom- HTML 和 DOM 的 JavaScript 实现。
- @sindresorhus/is- 检查值的类型。
- env-dot-prop- 使用点路径获取、设置或删除 process.env 的嵌套属性。
- node-video-lib- 用于处理 MP4 和 FLV 视频文件以及为 HLS 流创建 MPEG-TS 块的纯 JavaScript 库。
- basic-ftp- FTP/FTPS 客户端。
- cashify- 货币转换。
- genepi- 从 C++ 代码自动生成原生 Node.js 扩展。
- husky- 创建 Git 钩子脚本。
- patch-package- 对 npm 依赖进行修复和保留。
- editly- 声明式视频编辑 API。
- wild-wild-path- 支持通配符和正则表达式的对象属性路径。
- uint8array-extras- 用于处理 Uint8Array 和 Buffer 的实用工具。
包管理器
资源
教程
- Node.js 最佳实践- Node.js 最佳实践的顶级内容总结和精选,支持多种语言。
- Nodeschool- 通过互动课程学习 Node.js。
- The Art of Node- Node.js 入门介绍。
- module-best-practices- 编写新的 npm 模块时的一些良好实践。
- Node.js 之道- 存在着一套完整的 Node.js 最佳实践和指导原则,用于编写可维护的模块、可扩展的应用程序以及实际上令人愉悦的代码。
- 你不知道的 Node.js- 介绍 Node.js 的核心特性和异步 JavaScript。
- 便携式 Node.js 指南- 实用指南,教你如何编写可移植/跨平台的 Node.js 代码。
- 使用无框架构建真实 Web 应用- 一系列视频教程/直播,帮助你使用少量简单库和核心 Node.js 模块构建和部署真实的 Web 应用。
发现
- npms- 优秀的包搜索工具,通过多种指标深入分析包的质量。
- npm addict- 您日常的 npm 包信息来源。
文章
- Node.js 中的错误处理
- 10 步教你学会 Node.js
- 精通 Node.js 中的文件系统
- Semver 简介
- Semver:波浪号和尖号
- 为什么使用异步?
- 理解 Node.js 事件循环
- 理解对象流
- 使用 Express 快速构建 GraphQL 服务器
新闻简报
- Node Weekly- 每周 Node.js 新闻和文章的电子邮件汇总。
视频
- Node.js 简介(Ryan Dahl)
- Node.js 实践教程
- V8 垃圾回收器- 关于 V8 垃圾回收器的闲聊。
- Ryan Dahl 关于 Node.js 的十件后悔事- Node.js 创造者关于其一些限制的深刻见解。
- 在 Node.js 中掌握 REST API:从零到英雄- 关于如何使用 Node.js 创建 REST API 的视频课程。
- 制作纯 Node.js REST API- 不使用 Express 等框架构建 REST API。
- Google I/O 2009 - V8:高性能 JavaScript 引擎- V8 架构的基础以及它如何优化 JavaScript 执行。
- Google I/O 2012 - 使用 V8 突破 JavaScript 速度极限- V8 如何优化 JavaScript 执行。
- Google I/O 2013 - 使用 V8 加速 Oz:沿着黄砖路走向 JavaScript 性能- 如何使用 V8 知识检测应用瓶颈并优化性能。
- Node.js 内部架构 | Ignition, Turbofan, Libuv- Node.js 内部工作原理,重点关注 V8 和 libuv。
- libuv 简介:什么是独角兽迅猛龙?- libuv架构、线程池和事件循环,以及其源代码。
- libuv 跨平台异步 I/O- 详细介绍libuv架构,例如它实际使用线程的地方。
- 你不知道的 Node - ForwardJS 旧金山- 通过关于 V8、libuv、事件循环、模块、流和集群的测验来解释 Node.js 内部。
书籍
- Node.js 实战
- Node.js 实践
- 精通 Node
- Node.js 8 正确之道
- 专业 Node.js:构建基于 JavaScript 的可扩展软件
- 保护您的 Node.js Web 应用
- Express in Action
- Practical Modern JavaScript
- Mastering Modular JavaScript
- Get Programming with Node.js
- Node.js Cookbook
- Node.js Design Patterns
Blogs
- Node.js blog
- webapplog.com- 来自《实用 Node.js》和《Pro Express.js》作者 Azat Mardan 的 Node.js 和 JavaScript 博客文章。
课程
快捷参考
- Express.js
- Stream 常见问题解答- 关于流的常见问题解答,涵盖分页、事件等内容。
- Strong Node.js- Node.js Web 服务的源代码安全性分析清单。
工具
- OctoLinker- Chrome 扩展程序,用于链接化 GitHub 上 package.json、.js、.jsx、.coffee 和.md 文件中的依赖项。
- npm-hub- 一个 Chrome 扩展,用于在仓库的 README 文件底部显示 npm 依赖项。
- RunKit- 在任何网站上嵌入 Node.js 环境。
- github-npm-stats- 一个 Chrome 扩展,用于在 GitHub 上显示 npm 下载统计信息。
- npm semver calculator- 可视化探索 semver 范围匹配的包版本。
- CodeSandbox- 在线 IDE 和原型设计工具。
- Amplication- 自动生成功能完整的应用程序。
- RunJS- 桌面 JavaScript 游乐场。
社区
杂项
- nodebots- 由 JavaScript 驱动的机器人。
- node-module-boilerplate- 用于启动创建 node 模块的脚手架。
- modern-node- 用于使用 Jest、Prettier、ESLint 和 Standard 创建 node 模块的工具包。
- generator-nm- 快速搭建一个 node 模块。
- Microsoft Node.js Guidelines- 在 Microsoft 平台上使用 Node.js 的技巧、窍门和资源。
- Module Requests & Ideas- 提出你希望存在的 JavaScript 模块,或获取模块创意。
- v8-perf- 与 V8 相关的笔记和资源,因此也与 Node.js 性能相关。