跳到主要内容

awesome-dev-nodejs

Awesome-Node.JS-List

:heart: 收藏列表 - :+1: 很棒的 Node.js 开发工具和生态技术。

Favorites list - great Node.js development tools and ecological technology.


Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,使用了一个事件驱动、非阻塞式 I/O 的模型,为 JavaScript 提供了一个服务器端应用程序开发平台,👉 https://nodejs.org/ / https://nodejs.dev/

OpenJS Foundation - 开源 JS 基金会,由 Node 基金会和 JS 基金会合并而成。

(Recommend)推荐一个其它的很棒的收藏列表, 👉 https://github.com/sindresorhus/awesome-nodejs

目录

Resource navigation list.

技术标准规范

Technical standard specification.

More others 👉 Awesome-Development-Technical-Standard-Specifications

Go Top ↑

技术参考文档

Official and unofficial technical reference documents.

Go Top ↑

Node 版本管理

Node version management, can install multiple versions at the same time, and switch at any time.

  • n - npm 包,Node 版本管理工具,不支持 Windows 系统
  • nvm - Node 版本管理,不支持 Windows 系统
  • nvm-windows - Node 版本管理工具,仅支持 Windows 系统
  • fnm - Rust 编写的 Node 版本管理工具,支持 Windows/Linux/Mac 系统。
  • Volta - Rust 编写的工具链版本管理工具。

Go Top ↑

Node 包管理

Node.js package (or library) manage.

  • 包管理器(Packages Manageer)

    • npm - Node.js 的官方包管理器。
    • Yarn
    • pnpm - 支持 Monorepo 仓库。
    • Bower - ( ⚠️ 不再积极维护)
  • 包开发(Package Development)

    • npm publish
    • release-please - 自动生成更新日志、版本更新、创建 Github Release。
    • Denoify - 为 npm 模块作者提供 Deno 支持。
    • auto-changelog - 根据提交记录和标签生成更新日志。
    • yalc - 类似 npm link 的工具。
  • 包搜索(Package Search)

    • npm.io - 聚合搜索引擎。
    • Npm Trends - 可以查询对比多个 Npm 包的下载流量数据、star 数目等。
    • Moiva - 比较 Github 和 npm 包下载趋势,关注度等等。
    • PickBetterPack 根据 package.json 文件分析已安装包的相似的依赖包。
    • Npm Charts - 可以查询对比多个 Npm 包的下载流量数据、star 数目等。
    • Microjs - 查询可用的最小的包。
    • vanilla list - 查询可用的最小的包。
  • 包分析(Package Analysis)

    • BUNDLEPHOBIA - 分析 npm 包大小和依赖关系。
    • Package Phobia - 分析 npm 包大小。
    • runpkg - 在线浏览 npm 包内的文件内容。
    • pkg.land - 寻找替代模块(方案)。
    • publint - 发现包的发布错误,并给出建议。
    • npm graph - 以树图分析 npm 包依赖。
  • Monorepo 工具(Monorepo Tools)

    • monorepo.tools
    • Lerna - 管理 Monorepo 架构的 Node 模块代码库工具。
    • Nx - 管理 Monorepo 架构的 Node 模块代码库工具。
  • 工具(Tools)

    • Verdaccio - 开源的轻量级私有 npm 代理仓库。
    • nrm - npm 换源。
    • npm-check-updates - 项目依赖 npm 包批量更新工具。
    • depcheck - 项目依赖检查。
    • depp - 项目依赖检查,是否存在未使用或者重复的依赖。
    • npkill - 搜索系统中的 node_modules 文件夹并清理。
    • qnm - 搜索 node_modules 目录的工具。
    • njt - npm jump to,npm 包搜索并跳转到相应 npm 站点。
    • patch-package - 对模块打补丁进行修复。
    • npm-packlist - 检查 npm 包发布后包含的所有文件。

Go Top ↑

构建工具

Build toolchains for web frontend and node.js app development.

  • 构建 Web 应用(Build Web Apps)

  • 文档(Doc)

    • JSDoc - JavaScript 的 API 文档生成工具。
    • ESDoc
    • typedoc - 生成 TypeScript 项目文档。
    • Code Highlighting
    • Markdown Converter
      • markdown-styles - 命令行工具,将 Markdown 文件批量转换为特定主题样式的 HTML 文件。
      • github-markdown-css - 最小的 Github 风格的 Markdown 样式。
  • 配置(Config)

  • 环境变量(Environment variable)

    • cross-env - 为 npm 脚本配置和使用环境变量提供跨平台支持。
    • Envalid - 环境变量校验。
  • 日志(Log)

  • 调试(Debug)

    • debug - 打印 debug 日志。
    • Source Map - 生成和解析 .map 文件,调试压缩代码,Mozilla 发布
    • Mobile Debug
      • Eruda - 移动端 Web 调试工具。
      • vConsole - 移动端 Web 调试工具,腾讯(Tencent)出品。
  • 性能分析(profiling )

    • 0x
    • clinic.js - 性能分析、监控、指标收集。
    • Tinybench - 基准测试。
    • mitata - 基准测试,支持自动 GC,可视化结果。
    • autocannon - HTTP 请求基准测试。
  • 测试(Test)

    • Mocha
    • jest
      • ts-jest - 带 TypeScript 类型检查的 jest 编译转换器。
    • supertest - 基于 superagent 模块的 HTTP 断言。
    • Sinon.JS - 对复杂功能进行模拟,以更好的完成单元测试。
    • Polly.js - HTTP 模拟。
    • fuite - CLI 工具,发现 Web 应用的内存泄露问题。
  • 数据校验(Data Validation)

  • 模拟 API(Mock API)

    • JSON Server - 可快速启动一个提供 REST API 的服务器,并返回指定测试数据。
    • Nock - 模拟 API 服务,响应指定测试数据。
    • Mock.js - 模拟 API 服务,响应随机测试数据。
    • Mock Service Worker - 利用 Service Worker API 拦截请求并实现 Mock API。
    • Mirage JS
    • faker.js - 生成大量随机测试数据,可用来开发过程中进行 API 调试。
    • Chance - 生成随机的测试数据。
  • 进程管理(Process Manage)

  • 编译器(Compiler)

    • JavaScript / TypeScript
      • Babel - 编译工具,可将 TypeScript、ES6/7/8 代码编译为 JavaScript(ES5) 代码。
      • swc - Rust 编写的代码编译转换工具,可替代 Babel。
    • CSS / Less / Sass
      • Sass - CSS 预处理器,可提供类似编程语言的能力(变量、方法、作用域、嵌套)来编写 CSS。
      • PostCSS - CSS 后处理器,提供众多插件来实现还未被广泛实现和标准化的 CSS 功能特性,最终将其编译为目标平台支持的 CSS 代码。
      • CSS In JS
      • modular-css - CSS 模块的扩展实现。
    • Others
      • Rust
        • Neon - Rust 的 Node.js 绑定,可用来编写快速、安全的原生模块。
        • NAPI-RS - 使用 Rust 编写预编译的 Node.js 插件的框架。
      • Ruby 2 JavaScript
        • Opal
        • Ruby2JS - Ruby 到现代 JavaScript 代码的转换器。
      • Scala 2 JavaScript
      • F# 2 JavaScript
      • Go 2 JavaScript
  • API 兼容性支持(API Polyfills)

    • Browserslist - 社区主流的目标设备检测工具库。
    • HTML
      • html5shiv - 在旧浏览器(IE9 以下)上提供对 HTML5 新标签(例如 footer、nav)的支持。
    • CSS
      • Respond - 在旧浏览器(IE 6-8)上提供对 CSS3 Media Queries(媒体查询)的支持。
      • selectivizr - 在旧浏览器(IE 6-8)上提供对 CSS3 新选择器的支持,注意 style 标签内样式不解析,动态生成的 DOM 也不解析。
      • css-paint-polyfill - CSS Paint API
    • JavaScript
  • 打包工具(Bundler)

  • 代码静态分析(Code Static Analysis)

    • ESLint - JavaScript 语法规则检查工具。
    • Prettier - 代码格式化工具,支持多种语言。
    • stylelint - CSS 语法规则检查工具,支持 CSS/Sass/CSS-in-JS 等。
    • Flow - Facebook 出品的 JavaScript 静态类型检查工具。
    • sonar.js - 代码质量分析。
    • AST - Abstract Syntax Tree
      • acorn - JavaScript AST 解析工具。
      • ts-morph - TypeScript AST 解析工具。
  • 代码版本管理(Code version management )

  • 服务器(Server)

    • Browsersync - 浏览器同步调式工具,功能非常强大。
    • live-server - 具有实时重新加载页面功能的轻量静态资源 HTTP 服务器。
    • devcert - 让 SSL 开发变得容易。
  • 其它(Others)

    • esm - 能够为 .js 文件提供 ECMAScript Modules 支持。
    • envinfo - 生成开发环境信息报告。
    • Madge - 生成可视化的模块依赖图。
    • SystemJS - 动态 ES Module 加载器。
    • favicons - 网站图标生成器。
    • quicktype - 在多个语言之间共享类型,生成类型代码。
    • js2flowchart - 分析代码生成执行流程图。

Go Top ↑

工具库

Tool Library, some unofficial high-quality Node.js packages (or libraries).

see also 👉 awesome-nodejs

  • 实用工具(Utils)

    • 颜色解析(Color)
      • chroma.js - 颜色字符串解析、计算工具,功能很强大。
      • color - 颜色字符串解析、计算工具,更轻量。
      • TinyColor - 颜色字符串解析、计算工具,更轻量一些。( ⚠️ 不再更新)
      • one.color - 颜色字符串解析、计算工具,支持 RGB, HSV, HSL, CMYK 等。
    • 异步操作(Asynchronous operation)
    • 对象操作(Object manipulation)
    • 其它(Others)
      • normalizr - 根据 Schema 将嵌套的 JSON 数据归一化。
      • Anchorme.js - 将文本中的 URL/邮箱等转换为链接。
  • 实用函数库(utility library)

    • 通用(Generic)
      • Underscore - JavaScript 的工具函数库,提供了大量非常有用的工具函数。
      • Lodash - JavaScript 的工具函数库,参考自 Underscore,功能更丰富。
      • Ramda - JavaScript 的工具函数库,专门针对于函数式编程。
        • rambda - Ramda 的更快、更轻量的替代方案。
      • Remeda.js - JavaScript 的工具函数库,专门针对于函数式编程,同时支持 "data-first" 和 "data-last" 的范式。
      • ts-belt - JavaScript 的工具函数库,专门针对于函数式编程,更快、更现代化。
      • RxJS - 响应式编程(Reactive Extensions)的 JavaScript 实现,对异步数据集合处理很方便。
      • deepmerge - 对象的深度合并,可自定义合并策略。
      • simple-statistics - 一些常用的统计方法。
      • Radash - 现代的、函数式工具库。
      • es-toolkit
    • 深度相等判断(Equal depth)
      • fast-deep-equal - 高性能,支持比较 ES6 Map, Set 和 Typed arrays。( ⚠️ 不再更新)
      • dequal
      • microdiff - 高性能数组与对象的相等比较。
      • diff - 文本差异算法。
    • 函数记忆化(Function memoization)
      • mem - 函数缓存,可控制缓存有效期等。
      • moize - 函数缓存,功能丰富。
      • memoize-one - 函数缓存,轻量级,仅缓存最后一次执行结果。
  • UID

    • uuid - 生成随机唯一 id。
    • ulid - 生成可排序的唯一 id。( ⚠️ 不再更新)
    • Nano ID - 生成唯一、URL 友好、安全的随机字符串。
    • cuid - 生成防碰撞的随机 id。( ⚠️ 不再更新)
  • 日期时间(Date && Time)

    • Moment.js - 功能强大的日期、时间处理库。
    • Luxon - 现代化、api 友好的日期、时间处理库,Moment.js 团队开发。
    • date-fns
    • Day.js - 现代化、轻量级日期、时间处理库。
    • ms - 毫秒和人类可读字符串格式互相转换工具。
    • pretty-ms - 毫秒转换为人类可读字符串。
  • 科学计算(Compute - Math && High precision && Scientific Computing)

  • 数据操作(Data Manipulation)

    • Danfo.js - 处理结构化数据的工具库,类似 Python 的 Pandas
    • bson - BSON 格式数据解析器,MongoDB 官方发布
    • construct-js - Byte 级别数据操作工具库。
    • Buffer - 可在浏览器中使用与 Node.js Buffer API 100% 相同的 API。
    • Yjs - 一种高性能的 CRDT 实现,用于构建自动同步的协作应用程序。
  • 数据加密、解密(Data encryption and decryption)

  • 文本解析/模式匹配(Text parsing/Pattern matching)

  • 二维码(QR Code)

  • 条形码(BarCode)

  • 文件(File)

    • utils tools
      • fs-extra - 作为官方原生 fs 模块的补充和优化。
      • chokidar - 作为官方原生 fs.watch 替代方案,跨平台高效的文件监视库。
      • rimraf - 为 Node 提供类似 rm -rf 删除文件操作。
      • memfs - 内存文件系统。
      • rotating-file-stream - 文件流自动轮转,可用于日志文件分割,类似 UNIX logrotate
      • file-type - 探测文件类型。
      • fdir - 最快的目录搜索器。
      • Tmp - 生成临时文件和目录。
      • Size String Format
    • html/xml
      • parse-xml - XML 解析器。
      • jsdom - Web 标准的纯 JavaScript 实现。
      • cheerio - 包装了parse5htmlparser2 的轻量级 HTML 文档解析库,具有类 jQuery 的 api。
      • turndown - 将 HTML 内容转换为 Markdown 格式。
    • markdown
    • json/json5/jsonl
      • stream-json - 大型数据集的流式处理。
      • JSON5 - JSON5 格式数据解析、序列化。
    • yaml
      • js-yaml - yaml 文件解析和生成。
    • csv
      • CSV - 功能全面的 csv 文件生成、解析、转换、序列化工具。
      • Papa Parse
    • xlsx
      • exceljs - 读、写 xlsx、csv 文件。
      • xlsx - 读、写 xlsx、csv 文件(写功能部分特性不免费)。
        • xlsx-cli - 处理 excel 文件的命令行工具,基于 xlsx
    • docx
    • pptx
    • pdf
    • image
      • sharp - 图像处理,拉伸、缩放、色彩提取等等,底层使用 libvips,无需安装其它依赖,开箱即用,效率更高。
      • gm - 图像处理,需先安装 GraphicsMagickImageMagick
    • svg
      • SVGO - SVG 文件优化工具。
    • zip
  • HTML 模板引擎(HTML Template Engines)

  • HTTP 请求(HTTP Request - Ajax / Promise / fetch)

    • multipart/form-data
      • form-data - 创建 multipart/form-data 数据,并提供正确的 Headers。
      • formidable - 解析请求中的 multipart/form-data 数据。
      • Busboy - 解析请求中的 multipart/form-data 数据,支持流。
    • axios - 基于 Promise 的 HTTP 客户端工具库。
    • Hyper Fetch - 支持 WebScoket 协议。
  • 远程过程调用(RPC)

    • Lounge - 现代的 Web RPC 客户端。
  • 套接字(Socket)

    • Socket.IO - 基于事件的实时通信框架,提供客户端(浏览器)和服务器实现。
    • SockJS - 提供客户端(浏览器)和服务器实现。
    • WebSocket-Node
    • ws - Node.js WebSocket 客户端和服务器。
    • faye-websocket
  • 多进程/线程编程(Multi-process/thread programming)

    • 线程池
      • workerpool - 轻量线程池工具,支持 Node.js 与 Web 浏览器环境。
      • piscina
      • threads.js - 在浏览器和 Node.js 环境中实现一致的 Web Worker API。
    • 工具(Tools)
  • 队列与作业调度(Queue & Job scheduling)

  • 沙箱(Sandbox)

  • 邮件(SMTP)

  • 无头浏览器(Headless Browser)

  • Git

  • 国际化(i18n)

  • 其它(Others)

    • ssh2 - SSH 客户端和服务器。
    • odiff - 逐像素图片差异对比工具。

Go Top ↑

命令行工具

Command line tools and tools used to develop command line applications.

构建工具

  • 社区实践(Community Practice)

  • zx - 编写 JavaScript 脚本,而非 Bash 脚本。

  • 实用工具(Utils)

    • chalk - 终端输出字符串样式工具,支持全部的色彩。
    • configstore - 持久化命令行应用的配置。
    • minimist - 命令行参数解析器。(npm 官方解析器 nopt
    • commander - 简单的命令行接口。
    • yargs - 解析参数,构建交互式命令行程序。
    • prompts - 轻量、漂亮的交互式命令行提示。
    • inquirer - 交互式命令行。
    • shell.js - 基于 Node.js 的 Unix Shell 命令的可移植实现。
    • Progress / Loading
      • tasuku - 任务运行器,可在终端展示运行状态。
      • ora - 终端 spinner 效果。
      • progress - 进度条。(⚠️ 不再积极开发)
      • cli-progress - 进度条。
    • Concurrent / Parallel
    • table - 将数组数据打印成字符串表格。
    • marked-terminal - 利用 marked 将 Markdown 文件渲染到终端。
    • asciichart - 控制台展示折线图。
  • 命令行应用开发框架(CLI App Dev)

    • Ink - 用 React.js 开发命令行应用。
    • Caporal - 全功能命令行应用开发框架。
    • oclif - 命令行工具开发框架。
    • meow - 命令行应用开发工具包。
    • Gluegun - 命令行应用开发工具包。
    • Terminal Kit - 编写命令行程序的工具包。
    • blessed - 高级终端接口库。
  • 可执行程序(Executable)

    • pkg - 将 Node.js 脚本打包成单个可执行文件。
    • nexe

实用工具

  • Interpreter
    • nve - 用指定版本的 Node 运行命令。
    • TS Node - Node.js 的 TypeScript 语言运行器和交互式解释器。
  • HTTP 服务器(Static HTTP Server)
    • http-server - 可快速启动一个轻量的 http 服务器。
    • serve - 轻量的 http 服务器。
    • CORS Anywhere - 反向代理服务器。(⚠️ 不再更新)

Go Top ↑

数据库

Database.

  • Knex.js - SQL 生成器,支持 Node.js 与浏览器环境。

  • mongodb - MongoDB 的 Node.js 驱动,MongoDB 官方发布

    • mongoose - 对象文档映射(ODM),对 mongodb 的封装,提供模型 Schema,API 更简洁、易用。
  • mysql - MySQL 的 Node.js 驱动,非官方发布

  • sqlite3 - SQLite 的 Node.js 驱动,异步、非阻塞,非官方发布

  • GraphQL - 开源的数据库查询语言。

  • Prisma - 数据库工具套件。

  • PostgreSQL

    • PostGraphile - 为已有的 PostgreSQL 数据库提供 GraphQL API 支持。
    • pg-promise - PostgreSQL 的 Node.js 接口。
  • 对象关系映射(ORM)

    • Sequelize - 基于 Promise 的 Node.js ORM 库,支持 Postgres, MySQL, MariaDB, SQLite 和 Microsoft SQL Server。
    • TypeORM - 可以运行在所有 JS 技术栈中的 ORM 库,支持主流数据库。
    • Objection.js - 基于 Knex.js 构建。
    • Bookshelf - 基于 Knex.js 构建。
    • mikro-orm - TypeScript ORM 库,支持 MongoDB, MySQL, MariaDB, PostgreSQL 和 SQLite。
  • ioredis - 高性能、全功能的 Redis 客户端。

  • lowdb - 本地 JSON 数据库。

Go Top ↑

Web Server 框架

Node.js-based server development framework.

  • Connect - 可扩展的 HTTP 服务器开发框架,使用中间件机制,早期的 Express 基于此开发。

  • Express - 非常成熟的 Web 开发框架。

    • express-session - Express 中间件,提供 Session-Cookie 机制的支持,官方发布
    • body-parser - Express 中间件,对 request 的 body 进行预处理,官方发布
    • Multer - Express 中间件,处理 multipart/form-data 表单数据,官方发布
    • morgan - Express 中间件,请求日志记录,官方发布
    • Passport.js - 身份验证中间件,可在基于 Express 的 Node.js 框架中使用。
  • Koa - 轻量级、高性能的 Web 框架,Express 团队开发。

  • Restify - 可快速构建 RESTful API 的框架。

  • Fastify - 高性能、低消耗的 Web 框架。

  • NestJs - 基于 Express / fastify 的渐进式 Web 框架。

  • hapi - 注重安全、简洁的 Web 框架。

  • Feathers - 轻量的、面向服务的构建实时 Web 应用和 REST APIs 的框架。

  • Sails.js - 实时的 MVC 框架。

  • Adonis.js - 全栈 MVC 框架。

  • Hono

  • Full stack framework / CRUD App

  • 鉴权(Authentication)

Go Top ↑

内容管理系统

Content Management System.

Go Top ↑

桌面端开发

Desktop-side application development framework.

  • 系统组件(System Components)

  • 原生 API(Native)

  • 开发框架(Development Framework)

    • Electron - 基于 Node.js 与 Chromium 技术的开源跨平台桌面端应用开发解决方案。
    • NW.js - 基于 Node.js 与 Chromium 技术的开源跨平台桌面端应用开发解决方案。
    • Neutralino - 轻量级跨平台桌面端应用开发框架。
    • NodeGui
    • robot.js - 桌面端自动化库。
    • tauri

Go Top ↑

深入探索

Explore the principles behind the technology, the underlying architecture, etc.

引擎/运行时

Engine / Runtime.

服务器优雅关机

Graceful server shutdown.

Go Top ↑

文章

Article.

Go Top ↑

更多

More other unclassified resources.

Go Top ↑