【Node】Node.js 资源汇总推荐

【Node】Node.js 资源汇总推荐_第1张图片

【导读】: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 为你所有的资源自动生成管理员界面

论坛

包名 描述
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

你可能感兴趣的:(node.js,javascript)