Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,使用了一个事件驱动、非阻塞式 I/O 的模型,为 JavaScript 提供了一个服务器端应用程序开发平台,:point_right: https://nodejs.org/
OpenJS Foundation - 开源 JS 基金会,由 Node 基金会和 JS 基金会合并而成。
(Recommend)推荐一个其它的很棒的收藏列表,:point_right: https://github.com/sindresorhus/awesome-nodejs
Resource navigation list.
- 技术规范标准(Technical Specifications)
- 技术参考文档(Technical Reference Document)
- Node 版本管理(Node Version Management)
- Node 包管理器(Node Package Manager)
- 工具库(Tool Library)
- 数据库(Database)
- Web 框架(Web Framework)
- 桌面端开发(Desktop Development)
- 文章(Article)
- 更多(More)
Official technical specifications.
- ECMA International - ECMA 国际是一家国际性会员制度的信息和电信标准组织,负责行业标准的制定,例如 ECMA Script。
- ECMAScript Official Specification Standard - ECMAScript 官方规范标准。
- TC39 ECMAScript proposals - TC39 对 ECMAScript 标准制定提案的记录。
- Node.js - Node.js 官方网站。
- V8 - Node.js 的运行时,也是 Chrome 浏览器的 JS 运行时。
- CommonJS - Node.js 默认采用的模块加载方式。
- AMD - 异步模块定义,适合浏览器端。
- Universal Module Definition - 通用模块定义,兼容 AMD、CommonJS 以及全局变量方式。
- JSON Schema - JSON 数据校验。
- JSON5 Specification - JSON5 数据格式规范,是对 JSON 格式的扩展,支持注释等特性。
- NDJSON Specification - Newline Delimited JSON 数据格式规范。
- TypeScript - JavaScript 的超集,强类型语言。
Official and unofficial technical reference documents.
- Node.js 中文网 - 唯一与官方同步更新的 Node.js 中文文档。
- JavaScript Algorithms and Data Structures - 算法和数据结构。
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 系统。
Node.js package (or library) manager.
-
Packages Manageer
-
Tool
- nrm - npm 换源,非官方。
- Lerna - 管理 Monorepo 架构的 Node 模块代码库工具,非官方。
- Nx - 管理 Monorepo 架构的 Node 模块代码库工具,非官方。
- npm-check-updates - 项目依赖 npm 包批量更新工具,非官方。
- np -
npm publish
的替代工具库,让发布更优雅、安全,非官方。 - Npm Trends - 可以查询对比多个 Npm 包的下载流量数据、star 数目等,非官方网站。
- Npm Charts - 可以查询对比多个 Npm 包的下载流量数据、star 数目等,非官方网站。
- BUNDLEPHOBIA - 分析 npm 包大小和依赖关系,非官方网站。
- Package Phobia - 分析 npm 包大小,非官方网站。
- njt - npm jump to,npm 包搜索并跳转到相应 npm 站点,非官方。
- npkill - 搜索系统中的 node_modules 文件夹并清理,非官方。
Tool Library, some unofficial high-quality Node.js packages (or libraries).
-
构建工具(Build Tools)
-
文档(Doc)
-
测试(Test)
- Mocha - 测试框架。
- JEST - Facebook 出品的 JavaScript 单元测试工具。
- JSON Server - 可快速启动一个提供 REST API 的服务器,并返回指定测试数据。
- Nock - 模拟 API 服务,响应指定测试数据。
- Mock.js - 模拟 API 服务,响应随机测试数据。
- faker.js - 生成大量随机测试数据,可用来开发过程中进行 API 调试。
- Chance - 生成随机的测试数据。
- playwright - 跨浏览器 Web 自动化工具,Microsoft 发布。
- Browsersync - 浏览器同步调式工具,功能非常强大。
-
代码静态分析(Code Lint)
-
代码版本管理(Code version management )
- husky - 更容易的使用 Git Hooks。
- lint-staged - 搭配 husky 使用,提交代码前进行 lint。
-
进程管理(Process Manage)
- Forever - Node 应用生产环境进程管理工具,使用简单方便。
- PM2 - Node 应用生产环境进程管理工具,支持集群、负载、远程部署,提供收费服务的实时监控平台。
- StrongLoop-PM - Node 应用生产环境进程管理工具,支持集群、负载、远程部署,提供收费服务的实时监控平台。
-
实用工具(Utils)
- Madge - 生成可视化的模块依赖图。
- esm - 能够为
.js
文件提供 ECMAScript Modules 支持。 - envinfo - 生成开发环境信息报告。
- web-worker - 在浏览器和 Node.js 环境中实现一致的 Web Worker API。
- tslog - 日志格式化。
- uuid - 生成随机 id。
-
时间日期(Date && Time)
- ms - 毫秒格式化工具。
-
二维码(QR Code)
- node-qrcode - 二维码生成。
- Awesome-qr.js - 个性化二维码生成。(:warning: 不再维护)
-
文件(File)
- utils tools
- fs-extra - 作为官方原生 fs 模块的补充和优化。
- rimraf - 为 Node 提供类似
rm -rf
删除文件操作。 - memfs - 内存文件系统。
- rotating-file-stream - 文件流自动轮转,可用于日志文件分割,类似 UNIX
logrotate
。
- html/xml
- jsdom - Web 标准的纯 JavaScript 实现。
- cheerio - 包装了parse5 和 htmlparser2 的轻量级 HTML 文档解析库,具有类 jQuery 的 api。
- markdown
- Marked - markdown 文件解析,转换成 HTML 文件。
- gray-matter - 解析 Front Matter。
- front-matter - 解析 Front Matter。
- json5
- JSON5 - JSON5 格式数据解析、序列化。
- zip
- JSZip - 解析、生成 zip 文件,具有简单的 API。
- ADM-ZIP
- Archiver - 生成存档文件的流式接口。
- node-stream-zip - 支持大的 zip 文件。
- csv
- CSV - 功能全面的 csv 文件生成、解析、转换、序列化工具。
- Papa Parse
- pdf
- PDF-LIB - 解析和操作 PDF 文件。
- xlsx
- docx
- image
- sharp - 图像处理,拉伸、缩放、色彩提取等等,底层使用 libvips,无需安装其它依赖,开箱即用,效率更高。
- gm - 图像处理,需先安装 GraphicsMagick 或 ImageMagick。
- utils tools
-
数学计算(Compute - Math & High precision & Scientific Computing)
-
HTTP 服务器(HTTP Server)
- http-server - 可快速启动一个轻量的 http 服务器。
- log4js - 日志记录。
-
HTTP 请求(HTTP Request)
- axios - 处理 HTTP 请求的工具库,非常方便。
- form-data - 创建
multipart/form-data
数据,并提供正确的 Headers。 - formidable - 解析请求中的
multipart/form-data
数据。 - Busboy - 解析请求中的
multipart/form-data
数据,支持流。
-
HTML 模板引擎(HTML Template Engines)
-
远程过程调用(RPC)
- Lounge - 现代的 Web RPC 客户端。
-
套接字(Socket)
-
无头浏览器(Headless Browser)
-
系统组件(System Components)
- node-notifier - 跨平台原生通知功能。
-
命令行工具(Command line tool)
Database.
-
mongodb - MongoDB 的 Node.js 驱动,MongoDB 官方发布。
- mongoose - 对象文档映射(ODM),对 mongodb 的封装,提供模型 Schema,API 更简洁、易用。
-
sqlite3 - SQLite 的 Node.js 驱动,异步、非阻塞,非官方发布。
- better-sqlite3 - 比 node-sqlite3 更快更简单的 API。
-
GraphQL - 开源的数据库查询语言。
-
Prisma - 数据库工具套件。
-
PostGraphile - 为已有的 PostgreSQL 数据库提供 GraphQL API 支持。
-
对象关系映射(ORM)
Node.js-based server development framework.
-
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 团队开发。
-
Gatsby - 基于 React.js 的开源框架,可快速开发 Web 网站和应用,多用于制作静态资源站点。
Desktop-side application development framework.
- Electron - 基于 Node.js 与 Chromium 技术的开源跨平台桌面端应用开发解决方案。
- NW.js - 基于 Node.js 与 Chromium 技术的开源跨平台桌面端应用开发解决方案。
- Neutralino - 轻量级跨平台桌面端应用开发框架。
Article.
- Introduction to Node.js - Node.js 技术介绍。
- Setting up multi-platform npm packages - 多平台支持的 npm 包配置。
More other unclassified resources.
- JavaScript Open Source Award - JavaScript 开源项目奖,非官方。
- Testing Library - 包含了众多测试工具项目。
- awesome-nodejs-security - Node.js 安全相关工具。
- NodeBB - 开源论坛软件。