文章
专栏
文章
专栏
全部专栏
一些好用的 npm 前端开源库
收集一些好用的前端开源库,主要是 npm 包
共 78 篇文章
更新于 2026-08-17
01
Prisma、Drizzle 等时间存储与时区问题
Prisma、Drizzle 的时间类型都会存储为 UTC 时间,JS 时间对象转换 SQL 也会基于 UTC 。应在数据库存 UTC,展示层转本地时区。
2025-10-19
02
Prisma 使用笔记
Prisma 是一个 TypeScript 语言支持良好的 ORM 框架,具备良好的数据模型、自动迁移、类型安全和自动完成功能。
2025-10-19
03
前台代码高亮方案 highlight.js 应用,支持网页与微信小程序
常用的富文本编辑器,具有代码块功能,但没有代码高亮,这里引入 highlight.js 实现高亮,并尝试支持普通网页、单页应用及微信小程序。
2020-08-16
04
通过 marked 渲染 markdown 为富文本格式,并设置样式、代码高亮
最近,将博客的文章编辑器从富文本改为了 markdown 编辑器,为了最终渲染的效果,需完成富文本的转化。
2021-08-16
05
使用 babel 7 后,解决老旧 npm 库对旧版 babel-core 的依赖问题
目前 babel 7 的使用已经很普遍了,新创建的项目,不应该再用 6 的版本。但有一些库,还对 babel-core 有着依赖。并且,这些库也不能再升级。这时就可以安装 babel-core 的 7.0.0-bridge.0 版本,来解决这个问题。
2021-08-23
06
在 React 和 umi.js 中使用 Handsontable 电子表格组件
Handsontable 是一个 js 表格组件,提供了数据绑定、验证、排序、上下文菜单等功能,最后一个开源免费的版本是 6.2.2 。
2019-08-31
07
在 Node.js 中一键安装 ffmpeg 依赖
配置 ffmpeg 通常需要做很多设置工作,但通过该 npm 包我们可以直接在 Node.js 中引用 ffmpeg,它会被自动安装。
2022-06-24
08
Node.js 中的同步的 http 请求库 sync-request
比如在 webpack 配置文件中,如需请求数据,异步的模式下往往不好写。sync-request 可以写出同步的代码,让 node.js 暂停直到请求完毕。
2022-07-13
09
openbase 网站,对比各种同类组件
将开源软件包进行比较,让我们可以多方面对比,更容易选择正确的开源包。
2023-04-06
10
viewerjs 易用的图片查看组件
博客图片需要进行放大、切换等效果,引入 viewerjs 这种第三方组件,可以快速获得丰富、完善的图片播放功能。
2023-04-08
11
常用的免费图片、插画、图标资源网站
博客、公众号等自媒体配图,图片、插画、图标等,最好使用 CC0 等协议的免费图片。这里收录一些我常用的资源网站。
2022-03-09
12
Node SerialPort 控制串行接口设备
Node.js 库,控制串行接口设备,可用于 electron 中
2019-10-26
13
http-server 简单静态服务器
生成简单静态服务器,可用于本地访问、局域网访问相关资源。
2019-06-21
14
cheerio 类 jq 语法进行访问与操作 html 文本
对于 html 文本,使用 cheerio 进行数据提取,通过 jq 的语法就可以进行数据的操作。
2021-09-19
15
Node.js 图像处理库 Sharp
Sharp 是高性能的图像处理库,使用了libvips,速度极快,它提调整尺寸、剪裁、旋转、转换格式等图像处理功能,下载量在同类仓库中比较高。
2019-11-25
16
tesseract.js 文字 OCR 识别库
适用于 100 多种语言的纯 Javascript OCR,无需联网即可使用。
2020-03-25
17
fetch-jsonp 跨域 jsonp 请求
类似 window.fetch 的 JSONP 请求库
2020-04-09
18
fonts.css 跨平台 CSS 中文字体解决方案
提供了黑体、宋体、楷体等常用的字体代码
2020-05-17
19
localForage 前端储存库
localForage 通过简单类似 localStorage API 进行异步存储。优先使用 IndexedDB 进行存储,可以存储较大数据,也能存储多种类型的数据,而不仅仅是字符串。
2020-06-22
20
pinyin 汉字转拼音
转换中文字符为拼音。可以用于汉字注音、排序、检索。
2020-07-13
21
qs 对 url 参数进行 URL encoded
get 参数如果需要写得比较复杂,需要通过 qs 来进行编码。
2020-09-18
22
scriptjs 异步引入 js 文件
加载一些未提供 npm 引入的库时,可以把它放到了 static 目录,通过 scriptjs 引入。
2020-10-15
23
cross-env 与 dotenv 设置 Node.js 环境变量信息
在命令中指定环境变量信息,可用于指定不同的项目环境。cross-env 用于在命令中直接设置环境变量信息,dotenv 用于读取不同的 .env 文件。
2020-11-24
24
ts-node-dev 运行 ts 项目
可直接执行 ts 文件,不用使用 tsc 监听编译,可自动重启
2021-01-10
25
js-xss 白名单过滤工具库
传入 html 文本进行过滤,返回过滤后的文本。
2021-02-05
26
js-cookie 前端处理 cookie
在浏览器中通过 JavaScript 处理 cookies
2021-04-18
27
react-native-elements 跨平台 UI 组件
可同时用于 react-native 和 react-native-web 中
2021-05-07
28
ua-parser-js 解析 user-agent 信息
user-agent 的内容存在较多混淆信息,判断起来比较麻烦。找一个可解析详细信息的库,方便且更准确。
2021-05-20
29
jsoneditor 专门的 JSON 编辑器
可用于查看、编辑、格式化与校验 JSON 的编辑器,基于 codemirror
2021-06-17
30
js 滤镜库
对比使用滤镜库 Philter 和 camanjs
2021-07-01
31
jszip 浏览器二进制压缩、解压库
解压上传的 zip 文件,可以解压并读取文件的名字、内容
2021-07-24
32
qrcode-parser 二维码解析
一个纯JavaScript的二维码阅读库,接受File对象,图片url,base64。
2021-10-03
33
qrcode 生成二维码
常用的二维码生成库
2021-10-13
34
signature_pad 电子签名板
signature_pad 是用于绘制平滑签名的JavaScript库,是基于HTML5 canvas ,适用于 PC 和移动端。
2021-11-18
35
quill 富文本编辑器
Quill 是一种现代的 WYSIWYG 编辑器,具备兼容性和可扩展性。
2022-01-04
36
tui.image-editor 图片编辑器
强大的图片编辑器,可直接调用,或者通过 api 调用编辑器的能力
2022-01-15
37
tui.editor 所见即所得的 Markdown 编辑器
所见即所得的 Markdown 编辑器,支持 GFM 标准、图表和 UML 扩展。
2022-02-03
38
tinymce 富文本编辑器
tinymce 是最流行的富文本编辑器之一
2022-03-20
39
iframe-resizer 自动解析 iframe 高度
使 iframe 的高度和宽度的自动调整大小
2022-04-30
40
ffmpeg.wasm 浏览器中的 ffmpeg
把 ffmpeg 跑在浏览器里
2022-07-06
41
videojs 视频播放器
世界上最流行的开源 HTML5 播放器框架之一
2022-05-22
42
react-beautiful-dnd 拖拽排序库
这个拖拽库的拖拽动画较为顺滑,且拥有相对更简易的 api。
2022-05-13
43
react-intl 国际化组件
较为成熟,支持 hooks 使用。
2022-06-16
44
why did you render 排查 react 渲染情况
用于在开发环境跟踪 react 组件的渲染情况
2022-07-27
45
React Hooks 合集 ahooks 和 react-use
ahooks 和 react-use 是两个 React Hooks 合集,拥有丰富的 Hooks 可直接使用。
2022-08-04
46
react-indiana-drag-scroll 移动端元素拖动滚动组件
该组件的介绍很简洁:实现拖动滚动。用于在移动端替换掉 PC 的滚动条,通过手势滑动形式进行滚动。
2022-08-27
47
html 页面转换为图片 ,并转为图片或 PDF 下载
html2canvas 可直接在用户浏览器上将网页或部分网页生成"屏幕截图",屏幕截图基于 DOM。
2022-09-19
48
swiper 滑动轮播库
最流行的滑动轮播库之一,支持竖向、横向滑动,支持PC和移动端。
2022-11-14
49
katex 渲染数学公式
katex 库支持渲染 LaTeX 数学公式,可结合 markdown 使用。
2022-11-22
50
通过 markdown-it 解析 markdown 文本
markdown-it 是流行的 markdown 解析库,插件丰富。
2022-11-25
51
react-content-loader 创建骨架屏占位符加载效果
开箱即用,可定制,轻量级。
2023-03-06
52
react-split-pane 可调整大小的拆分窗格
分割窗格 React 组件,可以嵌套或垂直或水平分割
2023-03-12
53
react-rnd 对元素拖拽和调整大小
创建可拖拽、调整大小的元素。rnd 的意思是:resizable and draggable。
2023-03-21
54
sortablejs 拖拽排序
SortableJS 对列表通过拖放 (drag-and-drop) 进行拖拽排序。它还提供了 Vue.Draggable 等比较成熟的包装组件。
2022-05-11
55
react-image-magnify 缩略图鼠标移入放大插件
一个用于触摸和鼠标的响应式React图像缩放组件,专为购物网站产品细节设计。
2023-04-09
56
前端 id 生成:uuid 与 nanoid
有时需要前端 id 生成的场景,这里比较使用常用的 id 生成库 uuid 与 nanoid ,以及探讨 id 冲突问题的解决方法。
2023-04-12
57
代码编辑器库 CodeMirror 6 使用笔记
CodeMirror 6 对 ts 、ES6 模块引入等的支持都很好,各个语言、插件等都单独拆成了包,可按需引入,也有一个好用的 react 包装组件。
2023-05-06
58
copy-to-clipboard 文本复制
使用方法很简单的文本复制插件,也有不错的 react 包装器。
2023-05-16
59
vditor 更好用的 markdown 编辑器组件
这个编辑器组件功能很多,基本上能想到的都包含了,编辑体验良好,移动设备使用体验也不错。记录一些使用笔记。
2023-07-06
60
DOMPurify 更好用的前端 XSS 字符串清理库
DOMPurify 用于进行 HTML 文本的过滤,它会尽可能保留更多无害的属性,尽可能保持原有效果。
2023-07-13
61
Tailwind CSS 基础概念、配置、常见问题和使用笔记
Tailwind CSS 是当前最流行的样式框架,它有许多优势;对 IDE 支持友好,适合各种框架使用;掌握基础用法后,整体记忆成本不大。
2024-02-25
62
zustand 简易好用的 React 状态管理库
没有样板代码,没有额外学习成本,简单清晰,上手即用,配合 Immer 可使语句更简便。支持中间件,比如很方便地将全局状态同步到 localStorage 缓存中。
2023-12-15
63
使用 pro-components 的 DragSortTable 拖动排序表格
@ant-design/pro-components 以前需要引入 react-sortable-hoc 及大量代码,而现在已有可拖拽表格组件 DragSortTable,可直接使用。
2023-12-18
64
Tailwind CSS 组件框架 shadcn/ui 使用笔记
shadcn/ui 是由 shadcn 开发的 Tailwind Css 组件框架,可将组件自动拷贝至项目中。
2024-02-25
65
Hono.js 使用笔记
Hono.js 是目前比较流行的后端框架,支持所有 JS 运行时,使用简便,路由和中间件语法类似 express/koa ,可很方便地结合 zod 进行参数校验,支持类似 tRPC 的前后端 RPC 同构能力。
2024-10-27
66
使用 Node.js 操作 ffmpeg ,实现分割视频与合并视频小工具
使用 Node.js 操作 ffmpeg ,将大视频分割为多个视频片段、合并多个视频片段为一个视频。
2024-10-29
67
drizzle-orm 使用笔记
2024 主流的 ts orm 工具,类型安全,无二进制文件依赖,支持各种 serverless 运行时和数据库服务。
2024-11-02
68
Clerk 服务使用笔记,结合 Next.js 和 Hono.js 使用
Clerk 是一个 serverless 登录鉴权服务,支持大量第三方的 OAuth 登录,很方便就能搭建起登录体系,免费额度也较高。结合 Next.js 和 Hono.js 使用可很容易实现前后台全面的鉴权。
2024-11-03
69
探索 Transformers.js:核心机制与本地化模型实践
Transformers.js 是 Hugging Face 生态系统中的一款工具库,可以在浏览器或 Node.js 环境中执行自然语言处理、计算机视觉和音频处理等任务。本文结合一款 Electron 本地翻译应用的项目开发经验,探索 Transformers.js 在真实场景下的落地过程。
2026-04-11
70
Tesseract.js 构建本地图像文字识别模块
Tesseract.js 提供了一套轻量级的 JavaScript OCR 解决方案,兼容浏览器与 Node.js 环境。本文将结合项目的工程实践,阐述如何通过本地语言包、图像预处理与任务队列机制,在 Electron 客户端构建完整的离线图像文字识别模块。
2026-04-08
71
Electron 独立 Node 运行时打包指南
在 Electron 中运行重度依赖 C/C++ 原生模块或高负载计算任务时,内置的 Node.js 可能会遇到底层兼容瓶颈。为此,将标准的 Node.js 可执行文件打包进应用,并作为独立子进程运行,是一种稳妥的架构解法。本文结合打包 onnxruntime-node 等原生模块的踩坑记录,分享该方案的落地细节。
2026-04-11
72
React Query 项目实践
介绍 React Query 的核心概念、API ,及其在项目管理后台项目中的实践,涵盖了基于 Next.js App Router 的单例 Provider 配置、结合 URL 参数的数据获取策略以及自动缓存失效机制。
2026-02-19
73
Lucia 登录校验与项目实践
Lucia 提供基于 Session + Cookie 的登录校验方案,服务端通过校验会话拿到用户信息,前端通过受保护页面与接口的组合完成登录态管理。本篇笔记用于记录博客的 SSR 改造中,Lucia 在 Next.js App Router 中的实践。
2026-02-17
74
基于 @sentry/react 实现一个简易的 JS 错误收集功能
前端的报错有很多种类,可通过 @sentry/react 的 beforeSend 事件,组织数据格式上报到自己的接口中。
2025-06-27
75
@emotion/react 配置 css props ,优雅的 css in js 方案
css in js 有很多写法,此前主要接触的是 styled 写法,但这个写法不太习惯,也需要额外的 IDE 插件支持。emotion 的 css props 则相当于拓展了原生 style 标签,没有任何心智负担,也不影响现有项目的样式模式,可以无缝接入。
2024-11-19
76
fluent-ffmpeg 操作音频元数据
音频文件的元数据(如标题、艺术家、专辑等)是很多播放器归类的依据,为了更好的管理音频文件在 VLC 等播放器中的分组,可以根据需要对音频的元数据进行处理。
2025-05-11
77
Prisma 实现乐观锁与悲观锁
乐观锁是一种思想,不实际加锁,通过版本号控制一致性;悲观锁是在数据库中加行锁或表锁。Prisma 的文档中有实现乐观锁的示例,也可以通过执行原生 SQL 语句实现悲观锁。
2024-09-09
78
Mermaid 渲染方案设计与实现
分享博客在 Next.js App Router 架构下的 Markdown Mermaid 图表渲染方案,采用服务端骨架占位、客户端按需动态加载、LRU 内存缓存、并发竞态控制与双主题适配机制。
2026-08-17