# 常用库与工具

这里主要推荐一下自己平时常用,提高效率的一些库和工具。

# 常用库

# 收集库

  • hocs react 相关 hoc 收集库
  • markdown-it-emoji 将对应 emoji 表情的符号码复制后输入你的 markdown 文本即可显示 emoji 表情。

# 通用库

  • markdown-toc Generate a markdown TOC (table of contents) with Remarkable.自动生成 markdown 的导航栏

  • html-dom 一些常用的 dom 或者原生 js 操作判断,挺实用的

  • moment.js是一个简单易用的轻量级 JavaScript 日期处理类库,提供了日期格式化、日期解析等功能。它支持在浏览器和 NodeJS 两种环境中运行。

  • moment.js 中文网

  • html2canvasJavaScript 实现页面截图的类库

  • Immutable.jsImmutable 是 Facebook 开发的不可变数据集合

  • clipboard.jsClipboard.js 实现了纯 JavaScript (无 Flash)的浏览器内容复制到系统剪贴板的功能。可以在浏览器和 Node 环境中使用。

  • passportjs Passport 是一个 Node 平台的身份认证中间件,极其灵活和模块化

  • axios 中文文档 Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中

  • sweetalert2 一个自适应,且自定义性强的弹出框(零依赖)

  • tippy.js 最著名的 tooltip/popover library

  • text-mask 可以让 input 按照规则输入(如电话,email,日期,信用卡等),特殊格式 input

  • dinero.js 用来创建、计算和格式化货币价值的不可变的框架,支持国际化

  • img-2 一个提高图片加载性能和体验的库,懒加载使用 web worker 模糊预览

  • fingerprintjs 是一个快速的浏览器指纹库,通浏览环境的一系列配置生成 id

  • ajv 一个 json schema 验证的库

  • dayjs Day.js 是一个轻量的处理时间和日期的 JavaScript 库,和 Moment.js 的 API 设计保持完全一样. 如果您曾经用过 Moment.js, 那么您已经知道如何使用 Day.js

  • primjs 让页面支持代码高亮

  • uppy 一个很好看的也很好用的 前端上传库

  • Filepond 一个小巧的文件上传库

  • tui-calendar 功能全面的日程安排日历控件,还支持拖拽

  • spritejs SpriteJS 是一款由 360 奇舞团开源的跨终端 canvas 绘图库,可以基于 canvas 快速绘制结构化 UI 、动画和交互效果,并发布到任何拥有 canvas 环境的平台上(比如浏览器、小程序和 node )

  • tui.image-editor 一个功能齐全的在线图片编辑,基于 canvas

  • nanoid 是使用 JavaScript 开发、一个小型、安全、对 URL 友好的唯一字符串 ID 生成器。据作者说,比 uuid 更可靠和好用。至少从 API 的功能和易用性来看,似乎确实如此

  • rxdb 一款开源的快速、灵活的客户端数据库,支持各种浏览器以及 NodeJS,Electron、React 等等,是 PouthDB 之上的一个封装库

  • ImmortalDB 是用于浏览器的弹性键值存储 ImmortalDB 是在浏览器中存储持久键值数据的最佳方法,保存在其中的数据被冗余地存储在 Cookies、IndexedDB

  • big.js 解决 js 浮点数问题。 主要就是 Big Number 或者小数点,一个用于任意精度十进制算术的小而快速的 JavaScript 库。

  • bignumber.js 同上

  • stickybits CSS 的 position: sticky 是一个很有用的设置,但是老的浏览器不支持。这个 JS 库是该功能的垫片库。

  • cleave.js 用于在输入时格式化输入内容(信用卡格式、日期等)

  • shiny 在手机设备上模拟光的反射效果。 支持 DeviceMotion 事件

  • rrweb 一个可以记录你页面中所有操作的库

  • nodeppt markdown 写 ppt

  • flexsearch 能让你更加高效和快速的检索文本内容

  • scroll-hint 用于提示用户页面可以左右滑动的一个提示库

  • fuse.js 轻量级前端模糊查询库 非常的好用

  • FileSaver.js 文件下载插件 很多时候下载会有兼容性问题,它能帮你解决这些问题

  • selection 可视化选择页面元素的库

  • scroll-out 滚动效果(滚动视差)的框架,框架大小不到 1KB,使用回调的方式将相关动画元素的属性进行实时分配

  • gpu.js 通过将 js 转为特定的 language,利用 GPU 来执行,大大提高了执行性能和速度

  • pressure 前端实现 3D Touch

  • hammer 移动端手势库

  • AlloyFinger 腾讯出的手势库

  • lowdb LowDB 是一个本地 JSON 数据库,基于 Lodash 开发的

  • JSON-server 可以配合 LowDB 使用 快速搭建一个 REST API

  • lunr.js 是个用于浏览器的轻量级 JavaScript 全文搜索引擎,对于一些小型的博客、开发者文档或 Wiki 网站来说,完全可以通过它实现站内离线搜索

  • he 一个前端 encoder/decoder 库

  • grade 一个可以根据你的 图片 调整底色的插件

  • pretty-bytes 将字节转换成可以读的字符串,比如 1337 个字节,会显示成 1.34 KB

  • pagemap Mini map for web pages 页面导航图

  • commonmark.js parser and renderer markdown

  • body-scroll-lock 解决滚动穿透问题

  • lightgallery 图片预览组件

  • photoswipe 图片预览组件,支持移动端

  • darken 页面黑夜模式切换

  • mitt Tiny 200b functional event emitter / pubsub

  • sanitize-html html 过滤库,防 xss

  • DOMPurify 比 sanitize-html 更轻量,建议一般业务用这个

  • mdx jsx + markdown

# Css && 动画

  • animate.css 最有名的动画效果库
  • magic.css css 动画效果库 类似 animate.css
  • popmotion 一个函数式声明前端动画库
  • NES.css 任天堂主题风格 css 库
  • particles.js 前端实现颗粒粒子的动画效果库,比较炫酷,但相对的也比较吃性能
  • PaperCSS 手绘风格感觉 css 库
  • rough 基于 Canvas 的手绘风格图形库
  • wired-elements 基于 rough.js 分装 button input radio 等组件。它的底层是 Web components
  • roughViz rough 风格的图表库 手绘风格的图表库
  • matter-js web 物理引擎
  • micron 通过在元素上绑定属性从而实现动画效果的库
  • direction-reveal 根据鼠标进入位置,展现从不同方向 展现 hover 效果
  • laxxx 滚动特效库 轻量级 压缩完 2kb
  • cssfx 优雅的 CSS 动画效果,开箱即用
  • zdog 3D engine 引擎
  • leonsans 酷炫的 字体 动画 geometric sans-serif typeface made with code
  • css-doodle A web component for drawing patterns with CSS 一个用于使用 CSS 绘制图案的 Web 组件

# React

  • React Icons 将一些受欢迎的图标包含到 React 项目中
  • formik构建 React 表单的开源库:Formik
  • react-jsonschema-form Mozilla service 开源了一个通过 JSON 直接生成表单的 React 组件
  • rawact 一个 babel 插件,把 react 组件转为原生 dom

# Vue

# 工具库

  • live-server 可以快速启一个本地 dev 服务 并且支持自动刷新的 http server
  • serve 快速起本地静态服务
  • picojs js 人脸识别库
  • es-checker 检查当前环境对 ES6 支持的情况。支持浏览器和 node.js
  • merge-images 图片合成,利用canvas能将几张图片合成一张
  • fabric.js 基于 canvas 创建交互式的图片编辑界面非常适合用来做图片合成类工作。
  • phaser 这是一个为桌面和移动浏览器开发 HTML5 游戏的快速开源框架。 你可以为 iOS、 Android 和不同的本地应用程序创建游戏。
  • purifycss 移除没使用到的 css
  • dropcss 同上
  • fast-cli 命令行测试下载上传速度
  • @pika/web 让你不需要在本地 webpack 中 import,直接在游览器里面运行 npm 包
  • pinyin 汉字拼音转换工具
  • JavaScript Obfuscator Tool js 代码混淆工具
  • tesseract 图像识别,它能识别图片中的文字,支持中文
  • gka 一款高效、高性能的帧动画生成工具。只需一行命令,快速图片优化、生成动画文件,支持效果预览。
  • recast 前端 ast 库
  • jscodeshift 将 js 内容解析成 AST 语法树,然后提供一些便利的操作接口,方便我们对各个节点进行更改
  • stats.js 前端性能监控 如 FPS、内存使用情况等
  • PapaParse 解析 csv excel
  • mddir 生成 markdown file/folder structure 目录结构 tree
  • imagemin 图片压缩库
  • inline-css css covert to inline style 在生成 email 格式 html 的时候特别有用
  • babel-plugin-try-catch-error-report 全局自动 catch 错误进行数据上报
  • StreamSaver.js 大文件下载,不用像 saveAs 那样先读到内存中再下载
  • mammoth.js Convert Word documents (.docx files) to HTML
  • npkill 列出所有 node_modules,并支持删除
  • strapi 开源的解决方案来创建、部署和管理自己的 API,通过图形化界面进行操作
  • cheerio 为服务器特别定制的,快速、灵活、实施的 jQuery 核心实现.
  • node-semver node 版本验证库
  • live-server 一个简单的 http server 带有 reload 功能
  • node-portfinder 一个端口嗅探工具
  • update-notifiernode 依赖升级提醒工具
  • fastscan node 敏感词库
  • hygen 快速方便的创建代码 可以命令行创建预设的 template
  • ink 是一个 React 的命令行渲染器,命令行界面可以像写页面那么写了
  • dotenv 通过.env 设置环境部变量 vue-cli 也依赖它
  • patch-package 优雅的修改 node_modules 中的依赖库
  • Playwright 同 Puppeteer 团队出品,但区别是它支持 Chrome、Safari、Firefox、Edge
  • tree-cli node 根据目录结构生成 tree
  • tree-node-cli node 根据目录结构生成 tree
  • open node 打开浏览器

# 命令行相关

  • signale 一个 Node 的日志格式库,自带 16 个级别,可以定制颜色和 Emoji,可扩展的日志记录器
  • consola 优雅的命令行 console logger vuepress 也使用了它
  • chalk 命令行着色美化库
  • progress-estimator 命令行 progress bar 进度条模拟库
  • ora Elegant terminal spinner 命令行 loading
  • listr Terminal task 命令行任务列表
  • yargs 命令行参数解析
  • y18n yargs 基于 i18n 的一个包
  • commander.js 自动的解析命令和参数,合并多选项,处理短参,等等,功能强大,上手简单
  • Inquirer.js A collection of common interactive command line user interfaces. 命令行询问库
  • enquirer 命令行 prompt 询问库,写 cli 的时候很有用
  • Qoa 同上
  • cli-progress Terminal Progress Bar
  • cli-table tables for the CLI
  • node-notifier 在 NodeJS 环境中,可以很方便的唤起 notifier 通知

# 文件处理相关

  • rimraf 删除文件
  • globby 用于模式匹配目录文件
  • glob 文件查找
  • tiny-glob 文件查找
  • chokidar node 监听文件变化的库
  • fs-extra fs-extra 模块是系统 fs 模块的扩展,提供了更多便利的 API,并继承了 fs 模块的 API
  • execa 比 child_process 好用,返回 Promise
  • npm-run-all 一个 CLI 工具可以并行或者串行执行 script 指令
  • memfs memory-fs 的替代品,将文件放在内存中优化读写,webpack 依赖

# 调试相关

# Webpack

# 移动端

# 性能优化

# 请求处理

# 工程化相关

# 插件

  • pulltorefresh.js 下个下拉刷新插件
  • chancejs Chance 是一个轻量级的随机字符串生成器 JavaScript 插件,可帮助减少编写单调的代码,特别是在编写自动化测试时经常需要各种随机内容。
  • instant.page 一个判断用户行为 预测提前加载页面的库
  • screenfull.js 浏览器全屏插件 解决了不少兼容性问题