# 脚手架开发
常见工具包
Commander | 提供一个连贯的 API ,用于定义 CLI 应用程序的各个方面,如命令、选项、别名和帮助。简化了命令行应用程序的创建。 |
---|---|
yargs | 脚手架开发框架,通过解析参数和生成优雅的用户界面来帮助您构建交互式命令行工具。 |
lerna | 多 package 管理 |
Inquirer | 一个易于嵌入且美观的 Node.js 命令行界面。 提供了很棒的查询会话流程。 |
Chalk | Chalk 是一个非常简单的库,创建它的目的很简单 —— 给你的终端字符串添加样式。 |
colors | 打印 不同颜色的log信息 |
ora | 命令行 中高级的 、 功能丰富的高可定制化加载动画 |
cli-spinner | 命令行中 轻量的符号加载动画 |
npmlog | 执行 npm 的日志记录。它支持 自定义级别和彩色输出 。 |
import-local | 当与全局冲突的时候,比如全局和本地都有这个脚手架时可以使用, 判断使用的是否是本地版本 |
findup | 向上查找指定文件 |
path-exists | 判断文件是否存在 |
Debug | 一个很小的 JavaScript 调试实用程序。 只需将一个函数的名称传递给模块,它就会返回一个经过修饰的 console.error 版本,以便你将调试语句传递给该模块 |
fs-extra | fs 模块的扩展,支持更多文件操作功能 |
semver | 版本比对工具 |
figlet | 输出一些独特的大型 ASCII文本横幅 |
user-home | 获取 用户主目录 |
dotenv | 获取 环境变量 |
root-check | 检查是否是 管理员权限启动并自动降级 ,防止后续因普通权限导致无法使用。 |
pkg-dir | 从某个目录开始向上查找,直到找到存在 package.json 的目录,并返回该目录。如果未找到则返回 null |
minimist | 用来 解析命令行参数和选项的库 |
npminstall | 安装npm上的包 |
download-git-repo | 安装git仓库中的包 |
ejs | xml模板数据动态渲染 |
glob | 根据 文件路径进行遍历和匹配文件 ,拿到文件的内容。 |
底层原理包
readline(node 内置库) | 命令行的输入输出 |
---|---|
events(node 内置库) | 事件驱动 |
stream | 输入输出流 |
ansi-escapes | 自定义 命令行文字样式 |
rxjs | 处理异步事件流 |
busboy | 多文件上传底层库 ,尤其用于流式文件上传。 |
styled-components | css-in-js 理论工具,在 js中书写css样式 |
styled-jsx | css-in-js 理论工具,在 js中书写css样式 (ts 支持不友好) |
emotion | css-in-js 理论工具,在 js中书写css样式 |
react-router-dom | react 在 dom 环境下的 路由工具 |
# Vue
https://www.npmjs.com/package/@nwsee/core | vue 项目插件,用于页面性能监控 |
---|---|
# React
excalidraw | 画板、流程图和思维导图 等 |
---|---|
d3 | 可视化数据图表库 |
immer | 改变了 react 设置state状态的方式 |
classnames | 有条件地将 classNames 连接 在一起 |
ahooks | 国内常用的 react-hooks函数集 |
craco | 用于 create-react-app项目中的各种配置和重写 |
# Node.js
Express | 轻量级 web 框架 |
---|---|
Hapi | 以最小的开销和完全开箱急用的功能构建强大的、拓展性强的应用程序 |
Sails | 最流行的 Node.js 的 MVC 框架 |
Koa | 下一代 web 开发框架 |
Fs-extra | fs -extra 包含了 Node.js fs 包中没有包含的方法,比如 copy () , remove() , mkdirs() |
Node-cache | 一个简单的缓存模块,具有设置,获取和删除方法的功能,类似于 memcached。 key 值可以具有一个超时设置(ttl),在此时间之后它们将过期并从缓存中删除。 |
sharp | node图片处理 解决方案 |
Loadtest | node.js 压力测试工具 ,模拟高并发场景。 |
node-schedule | node.js 中进行定时任务 |
# Vite
http-proxy | vite 代理服务器的底层,用于转发 http 请求到响应给客户端 |
---|---|
# HTML
w3.js | w3.js 是 solidity abi 的 method_id 和 param 解释器,可用于直接操作 DOM 元素 |
---|
# css
Tailwind | 原子化 css |
---|---|
Styled-components | css-in-js,js 中书写 css |
# AI
@mediapipe | ai 识别模型集 |
---|---|
@xenova | ai 识别模型 |
# 编辑器
monaco-editor | web 端 vscode 编辑器,各技术栈都有对应的接入包 |
---|---|
# 日志
Morgan | 具体来说,它是一个 HTTP 请求记录器,存储 HTTP 请求,并为你提供有关应用程序如何使用以及可能存在潜在错误的简要信息。 |
---|---|
Winston | 一个几乎所有内容的日志记录器,支持多种传输方式。它存储的时间比 Morgan 长,它也有一个更大的维护者社区和更多的下载。 |
log4js | 用于在 js 中生成日志信息,可以输出到终端,也可以生成日志文件 |
# 数据库
Mongoose | Mongoose 是一个 MongoDB 对象建模工具,设计用于在异步环境中工作。 Mongoose 支持 Promise 和回调。 |
---|---|
Sequelize | Sequelize 是一个基于 Promise 的 Node.js ORM 工具,适用于 Postgres 、MySQL、MariaDB、SQLite 和 Microsoft SQL Server。它具有可靠的事务支持、关系、即时和延迟加载、读取复制等特性。 |
browser-sync | 开启浏览器服务 ,打开文件(html), 当执行文件改变时,自动刷新浏览器 |
mysql2 | 用于连接 mysql 和编写 sql 语句 |
knex | node 中 ORM 库,使用 JavaScript 代码来与关系型数据库进行交互 |
prisma | node 中 ORM 库,与 TypeScript 紧密集成,提供强大的类型安全保证 |
ioredis | 在 node.js 中与 Redis 客户端进行交互。 |
# 浏览器
Puppeteer | 通过 DevTools 协议控制浏览器,默认以无头模式运行(Chrome 的无头版本),同时可以用于编写网络怕中和数据抓取脚本。 |
---|---|
jsdom | 许多 Web 标准的纯 JavaScript 实现,用于 node.js中模拟浏览器环境 |
# 授权
Passport | Passport 的目的是通过一组可扩展的插件 (称为策略) 对请求进行身份验证。向 Passport 提供一个身份验证请求, Passport 提供钩子来控制身份验证成功或失败时发生的操作。 |
---|---|
Passport-jwt | Passport 库的一个插件,用于支持使用 JSON Web Token (JWT) 进行身份验证和授权 |
Bcrypt | 它是可以帮助你生成哈希密码的库。 Bcrypt 是由 Niels Provos 和 David Mazieres 基于 Blowfish cipher 设计的密码哈希函数,并于 1999 年在 USENIX 上展出。 |
JSONWebToken | JSON Web 令牌 (JWT) 是一种开放的、行业标准的 RFC 7519 方法,用于在双方之间安全地表示声明。这个包允许你解码、验证和生成 JWT。 |
# 静态网站生成
Gatsby | 一个现代的网站生成器,可以创建快速,高质量,动态的 React 应用程序,从博客到电子商务网站再到用户仪表板。具有很棒的插件生态系统和模板。 |
---|---|
NextJS | NextJS 首先支持服务器渲染以及静态生成的内容。 你还可以将 serverless 功能定义为 API 端点。 |
NuxtJS | 在 Vue 的生态系统中, NuxtJS 基本上是 NextJS 的替代品。 NuxtJS 的目标是让 web 开发功能强大,并且让开发者具有良好的开发意识。 |
# 模板语法
Mustache | Mustache 是一种无逻辑的模板语法。它可以用于 HTML ,配置文件,源代码等任何东西。它的工作原理是使用 hash 或对象中提供的值在模板中展开标记。 |
---|---|
Handlebars | 使用模板和输入对象生成 HTML 或其他文本格式。 Handlebars 模板看起来像一个嵌入了把手表达式的正则文本。 Handlebars 很大程度上与 Mustache 模板兼容。 |
EJS | EJS 是一种简单的模板语言,可让你使用简单的语法,快速的执行和简单的调试 JavaScript 来生成 HTML 标记。 EJS 拥有大量的活跃用户社区,并且该库正在积极开发中。 |
# mock 数据
Uuid | 方便而且体积小的包,可以快速、轻松地生成更复杂的通用惟一标识符 (UUIDs) |
---|---|
Faker | 实用的 npm 包,用于在浏览器和 Node.js 中制造大量假数据。 |
jsonServer | mock 开发服务器数据 |
nanoid | 字符串 ID 生成器 ,没有其余依赖。 |
# 表单文件和邮件
Validator | 便捷的字符串验证器,使程序更加健壮的库。许多有用方法,例如 isEmail() , isCreditCard() , isDate() 和 isURL() 。 |
---|---|
Formik | Formik 是 React 和 React Native 的一个流行开源表单库。它具有易于使用、声明性和适应性的特点。 |
Multer | Multer 是用于 multipart/form-data 数据格式的 Node.js 中间件,主要用于上传文件。 |
Nodemailer | Nodemailer 是 Node.js 应用程序的一个模块,允许轻松发送电子邮件。这个项目从 2010 年就开始了,现在它是大多数 Node.js 用户默认使用的解决方案。 |
pdfkit | 适用于 node 和浏览器的 pdf生成库 |
---|---|
pdf-lib | 任何 JavaScript 环境中 创建和修改pdf |
jspdf | 用 JavaScript生成pdf 的库 |
# 富文本编辑器
tinymce | 富文本编辑,可商用,具有美感 |
---|
# 图表可视化
echarts | 图表可视化 |
---|---|
d3 | 轻量的图表可视化 |
mapbox | 地图框架可视化 |
zrender | 提供给 echarts 使用的轻量级图形库 |
# 测试
Jest | Jest 是一个令人愉快的 JavaScript 测试框架,专注于简洁明快。它允许你使用易于使用、熟悉且功能丰富的 API 编写测试,从而快速获得结果。 |
---|---|
Mocha | Mocha 是一个 JavaScript 测试框架,使得异步测试简单而有趣。 Mocha 测试是串行运行的,在将未捕获的异常映射到正确的测试用例的同时,允许进行灵活和准确的报告。 |
# 代码规范
ESLint | ESLint 是用于识别和报告 ECMAScript / JavaScript 代码中的书写方式的工具。 ESLint 是完全插件化的,每个规则都是一个插件,你可以在运行时添加更多内容。 |
---|---|
Prettier | Prettier 是一种固执己见的代码格式化程序。它通过解析代码并使用自己的规则 (考虑到最大行的长度) 重新打印代码,以及在必要时包装代码,来强制执行一致的样式。 |
yeoman | 生成eslint插件开发模板 的工具 |
# 打包和压缩
Webpack | 一个著名的功能强大的模块打包器。它的主要目的是将 JavaScript 文件打包以便在浏览器中使用,但它也能够转换、捆绑或打包任何资源。 |
---|---|
HTML-Minifier | 轻巧,高度可配置且经过良好测试的基于 Javascript 的 HTML 压缩器 / 压缩器(支持 Node.js )。 |
Clean-CSS | 适用于 Node.js 平台和任何现代浏览器的快速高效的 CSS 优化器。 具有高度可配置和多种兼容模式。 |
UglifyJS2 | JavaScript 解析器,压缩程序和美化工具包。 它可以使用多个输入文件,并支持许多配置选项。 |
# 进程管理
Nodemon | 在 Node.js 应用程序的开发过程中使用的简单的监控脚本。对于开发非常有用,因为它非常容易重启,并且默认启用了文件监听 |
---|---|
PM2 | 带有内置负载均衡的 Node.JS 应用程序的生产进程管理器。 更全面,更适合生产,给你很多参数以进行调整功能 |
Concurrently | 简单而直接 —— 这是同时运行多个命令的有用工具。 |
# 桌面端
create-tauri-app | 创建 桌面端应用程序 |
---|---|
# 跨语言通信
grpc | 跨语言通信库 |
---|---|
# ORM
Prisma ORM | 下一代 Node.js 和 TypeScript ORM(对象关系映射) |
---|---|
Mongoose | mongodb 数据库 ODM(对象文档映射) |
# 解析和语法转换
js-yaml | 用于将 JavaScript 语言解析为 yaml |
---|---|
@babel/parser | 将 JavaScript代码转换为抽象语法树 |
@babel/traverse | 用于遍历和 操作抽象语法树 |
@babel/core | babel 核心功能集,例如将抽象语法树转为 JavaScript 代码。 |
@rollup/plugin-node-resolve | rollup 插件,用于告诉 rollup如何处理导入导出语句(路径补全) 。 |
@rollup/plugin-commonjs | rollup 插件,用于 允许rollup将CommonJS模块 打包为 ES 语法 |
@rollup/plugin-typescript | rollup 插件,用于 rollup处理TypeScript文件 |
# 音视频
text-to-speech | 文本转语音 |
---|---|
# 其他
Axios | 基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js 。 与 JS 内置 Fetch API 相比,它易于设置,直观且简化了很多工作。 |
---|---|
Socket.io | Socket.IO 支持实时,双向和基于事件的通信。 它可以在每个平台,浏览器或其他设备上运行,并同时关注可靠性和速度。 |
WS | 简单易用,快速且经过全面测试的 WebSocket 客户端和服务器实现。 一个很好的,不太抽象的, Socket.io 的替代方案 |
DayJS | DayJS 是 MomentJS (自 2020 年 9 月起处于维护模式)的一种快速、轻巧的替代方案。它们的 API 使用类似,如果你使用过 MomentJS ,则已经知道如何使用大多数 DayJS 。 |
Lodash | 现代化的 JavaScript 实用程序库,提供模块化,高性能以及其他功能。 公开关于 JavaScript 数组,对象和其他数据结构的许多有用方法。 |
Underscore | Underscore 提供了许多常用的功能工具以及更专业的工具:函数绑定, javascript 模板,创建快速索引,深度相等测试等。 |
Async | Async 是一个实用模块,它为异步 JavaScript 提供了直接、强大的功能。 |
Marked | 用于解析 markdown 而不需要缓存或长时间阻塞的低级编译器。 |
Randomcolor | 一个用于生成有吸引力的随机颜色的小脚本。 你可以传递选项对象从而决定其产生的颜色类型。 |
Pluralize | 该模块使用预先定义的规则列表,按顺序应用这些规则给指定单词单数或复数。 在许多情况下这很有用,例如基于用户输入的任何自动化。 |
dedent | 从多行字符串中去除缩进(空格) |
ms | 将易理解的时间转换为毫秒数。 |
hotkeys-js | 键盘事件 使用库。 |
qs | 查询字符串解析和字符串化库 ,具有一些附加的安全性 |
face-api | 用于 人脸识别 |
qrcode | 用于将 文本转二维码 ,并用 canvas 绘制出来 |
llqrcode | 将扫描二维码,将二维码转为文本 |
FFmpeg | 跨平台多媒体处理工具 ,可以采用命令行的方式 解码、编码转码复用、流式、过滤 和播放几乎任何机器创建的东西(如视频转码、剪辑、提取、合并)等。 |
pngquant | 压缩 PNG 图像文件的工具,同时保持图像质量和透明度。 pngquant 提供命令行接口和库,可轻松集成到各种应用程序和脚本中。 |
http-proxy-middleware | 代理中间件, 用于将特定的请求进行转发 |
mime | 用于根据文件或路径后缀, 得到对应的mime类型 。 |
invariant | 类型断言函数,不满足给定条件时抛出错误 |