npm 包推荐
Node默认包
包名 | 描述 |
---|---|
util | 有 promisify 等工具 |
fs | 文件读写库,可以.promises 获取 promise 版本 |
child_process | 创建子进程 |
readline | 检测命令行回车事件 |
events | 订阅发布库 |
prettier | 代码格式化工具 |
prettier-plugin-tailwindcss | Tailwindcss 的 prettier 插件 |
功能类
包名 | 描述 |
---|---|
@locator/runtime | 从浏览器快速定位到编辑器 |
命令行工具
包名 | 描述 |
---|---|
concurrently | windows 同时执行两个命令 |
create-next-app | 构建next脚手架 |
yo | 自定义脚手架平台,可自定义模版和下载指定模版 |
anywhere | 万金油服务器启动 |
ts-node | 执行 ts 程序 |
node-dev | 监听 node 程序 |
ts-node-dev | 监听 ts 程序,更新自动重启 |
nodemon | js 文件变动重新运行 |
supervisor | 监听 node 程序 |
tsc | 编译 ts 为 js 文件 |
cloc | 统计代码行数 |
parcel | 轻量打包工具,启动本地服务 |
http-server | 本地服务 |
server | 本地服务 |
git-open | 快速打开 git 仓库 |
json-server | 基于 rest 规则生成服务器 |
cross-env | 跨平台设置环境变量 |
gh-pages | 自动部署github page |
mitt | Vue3推荐使用的eventbus |
eventemitter3 | 比较老牌的eventbus |
@novu/node | node 端的消息(邮件/facebook…)通知库 |
release-it | 发版工具 |
全端通用工具
包名 | 描述 |
---|---|
@faker-js/faker | 比较新的 mock 数据库 |
mathjs | 计算库,包含大数值和小数计算问题解决方案 |
crypto-js | 加密库(md5、对称加密等) |
qs | 处理 url 路径 search 参数为对象 |
flyio | http 请求库 |
moment | 格式化时间 |
dayjs | 格式化时间 |
date-fns | 比 dayjs 更新的时间工具 |
date-fns-tz | 兼容性较强的, 指定时区格式化 |
async | 异步库 |
civet | 结合 typescript 和 coffescript 的新框架 |
lodash-es | 工具集 lodash 的 es 版本 |
radash | lodash 的替代品 |
zod | 数据验证的工具 |
zod-i18n-map | zod 的国际化版本 |
yup | 数据验证工具 |
valibot | 比 zod 更新的数据验证工具 |
fast-xml-parse | 全端通用的 xml parse 库 |
p-limit | 并发控制库 |
core-js | 各版本 js 实现, 垫片 |
globby | 更好的 glob 匹配 |
web-worker | 统一浏览器和nodejs的worker写法 |
jspdf | pdf 生成库 |
docx | doc 文档生成 |
浏览器工具
包名 | 描述 | |
---|---|---|
nanoid | 生成随机id | |
@fingerprintjs/fingerprintjs | 获取浏览器唯一指纹 | |
mixpanel-browser | 埋点数据分析库客户端 | |
@neodrag/vanilla | js轻量拖拽库 | |
@tanstack/react-router | 路由库 js/ts/react/vue/solid/svelte 等 | |
highlight.js | 高亮代码块 | |
marked | markdown 编辑器 | |
subjx | 拖动、缩放、旋转 | |
copy-to-clipboard | 前端复制剪切板 | |
html2canvas | 通过 html 生成 canvas | |
canvas2Image | 把 canvas 转图片 | |
fullpage.js | 全屏滚动库 | |
animejs | 轻小型动画库 | |
sentry | 前端异常监控系统 | |
aegis | 前端异常监控系统,tdesign在使用 | |
nprogress | 网页顶部进度条样式 | |
html-to-text | 将标签内容转为text内容,去掉所有标签元素 | |
gsap | 牛逼的动画效果库 | |
@blocksuite/editor | 好看的编辑器 | |
driver.js | 步骤提示库, 引导用户操作 | |
@n1rjal/pm_ts | 根据 postman 的 json 文件生成 typescript 的类型文件 | |
@builder.io/partytown | 通过 WebWorker 加载第三方脚本 | |
@emailjs/browser | 无需后端即可完成邮件发送 | |
pixi.js | canvas 与 webgl 结合的框架 | |
@trpc/client | trpc 统一前后端的 typescript 类型 | |
quill | 富文本工具(国外) | |
@wangeditor/editor | 富文本工具(国内) | |
particles.js | 粒子效果装饰库 | |
@editorjs/editorjs | 类似 notion 的编辑器 | |
pdfjs-dist | react较好的pdf预览组件 | |
pdf-viewer | 浏览 pdf 的库 | |
@trpc/client | trpc 客户端 | |
underscore | 填充一些浏览器中的一些通用函数, 在旧版本中 | |
@builder.io/partytown | 将资源密集的操作转到 web worker 中 | |
watermark-js-plus | 暗水印添加 | |
cropperjs | 图片裁剪 | |
hotkeys-js | 快捷键库 | |
html2canvas | dom 转 canvas 库, 可用于截图 | |
qrcode | 二维码生成 | |
node-qrcode | 支持多端的二维码生成 | |
file-saver | 保存文件 | |
tailwind-merge | 合并重复的 tailwind 类名 | |
three | 基于 webgl 的 3d 库 | |
stats.js | threejs 的性能检测面板 | |
dat.gui | threejs 的 gui 修改参数插件 | |
three-orbitcontrols | threejs 相机移动控件 | |
@tweenjs/tween.js | 补间动画, 类似 css 的关键帧动画 | |
babylonjs | 用于游戏开发的 webgl 3d 库 | |
chart.js | 国外评分最高的图表库 | |
effector | 比较新颖的状态库, 局部和全局. 支持 react / vue / solid | |
xstate | 基于状态机的 状态管理库 | |
@apollo/client | apollo 客户端, graphql | |
radar-sdk-js | 较为实惠的 google 地图替代方案 | |
leader-line-new | 动效引导线 | |
jheat.js | 类似 github 的热力图 | |
JsBarcode | 条形码生成 |
Node端工具
包名 | 描述 |
---|---|
dotenv | 读取 .env 文件 |
mstts-js | 文字转语音 |
node-schedule | 定时器工具 |
async-validator | 校验库 |
md5 | md5 加密 |
spark-md5 | 提供更多的 md5 方式 |
glob | 通过通配符匹配路径 |
yargs-parser | 获取 cmd 参数 |
chalk | cmd 信息样式设置 |
cli-progress | node 进度条 |
inquirer | 命令行选项 |
commander | 定制命令行界面 |
clear | 清空控制台 |
figlet | 打印字符文字 |
download-git-repo | 下载 git 仓库 |
ora | 命令行加载动画 |
iconv-lite | 解决编码问题 |
cheerio | 可以理解为 node 下的 jQuery |
request | 用于在 Node 端发送请求 |
nodemailer | 发送邮件 |
fs-extra | 文件操作(移动文件等) |
uuid | uuid 库 |
ogr2ogr | 文件格式转换,例如 dxf |
dxf | dxf 解析工具,可以转 svg |
gh-pages | github page部署库 |
decompress | 解压压缩包 |
compress-images | 图片压缩 |
imagemin | 图片压缩 |
picocolors | 输入颜色字符 |
log4js | 生成日志文件 |
@trpc/server | trpc 统一前后端的 typescript 类型 |
sharp | 图像处理库 |
morgan | http 日志记录库 |
zlib | gzip 压缩解压缩库 |
oxlint | 替代 eslint 的库 |
@antfu/eslint-config | antfu 推荐的 eslint config |
@trpc/server | trpc 服务端 |
consul | 微服务注册关联管理库 |
npmlog | 在 cli 中的 log 工具 |
semver | 比较版本号大小 |
colors | 颜色库 |
root-check | 降级 sudo 权限, 避免权限造成的影响 |
user-home | 获取用户主目录路径 |
path-exists | 判断文件 path 是否存在 |
minimist | 命令行参数解析 |
url-join | url 的自动拼接 |
npminstall | cnpm 中通过代码 install 的库 |
rimraf | rm 多系统删除库 |
simple-git | 代码进行 git 管理 |
bcrypt | 加密库 |
figlet | FIG 字符, 终端绘制字符画 |
lru-cache | lru 缓存算法的实现库 |
workerpool | worker 封装库 |
node-html-parser | html 的解析库 |
docusaurus | 文档自动生成工具 |
hpp | 参数脏数据清理 |
http-status | http 状态的枚举定义库 |
ioredis | node-redis 的改良版 |
@apollo/server | graphql 的实现标准, 支持多个 web 框架 |
fast-folder-size | 快速获取文件夹的大小 |
passport | 身份验证库 |
svg2pdf.js | svg 转 pdf 文件 |
pdf2html | pdf 文件转 html |
ink | 用 react 编写 cli 界面 |
代码规范相关
包名 | 描述 |
---|---|
husky | 哈士奇,用于 githook |
commitizen | 用于 commit log 生成 |
cz-customizable | 自定义 cz 命令行的展示文本 |
validate-commit-msg | 用于校验 commit log |
commitlint | 用于校验 commit 的 lint |
服务端相关
包名 | 描述 |
---|---|
egg-router-group | egg 的路由分组 |
egg-mongoose | egg 连接 MongoDB |
egg-valiadate | egg 校验前端传递参数 |
co-wechat | 微信体系 |
co-wechat-api | 微信体系 api |
jsonwebtoken | token 库 |
mysql | mysql 库 |
mysql2 | mysql 增强版库,里面有 promise 版本 mysql2/promise |
sequelize | orm 操作数据 |
drizzle-orm | 新的 orm 数据库检索工具 |
mongodb | mongo 数据库操作 |
mongoose | 基于 mongodb 封装简化操作 |
svg-captcha | 验证码 |
gm | 使用 GraphicsMagick or ImageMagick 生成缩略图 |
body-parser | 解析body的内容 |
koa2-connect-history-api-fallback | koa中适配spa应用的history模式 |
express | 后端框架 |
express-validator |
express 请求入参校验 |
ipstack | 各种工具 api 集成平台 |
Koa
包名 | 描述 |
---|---|
koa-router | koa 路由库 |
@koa/bodyparser | koa body 处理 |
@koa/cors | koa cors 库 |
@types/koa__cors | koa cors 库类型 |
babel相关
包名 | 描述 |
---|---|
@babel/core | babel 核心 |
@babel/preset-env | 解析 es |
@babel/preset-react | 解析 react |
@babel/preset-typescript | 解析 typescript |
Webpack相关
工具
包名 | 描述 |
---|---|
webpack-cli | webpack 的 cli 工具 |
webpack-dev-server | 热更新 |
loader
包名 | 描述 |
---|---|
stylus-loader | stylus 加载器 |
ts-loader | ts 加载器 |
awesome-typescript-loader | ts-loader 的强化版 |
babel-loader | babel 加载器 |
vue-loader | vue 加载器 |
loader-utils | 在 loader 中获取 options 的库 |
plugin
包名 | 描述 |
---|---|
mini-css-extract-plugin | 抽离 css 的文件 |
html-webpack-plugin | html 模板插件 |
webpack-bundle-analyzer | 打包分析工具 |
React 类
不再推荐
包名 | 描述 |
---|---|
classnames | 类名写法优化(被 clsx 平替) |
工具
包名 | 描述 |
---|---|
react-hook-form | 评分较高的 form 表单封装库 |
clsx | 类名写法优化 |
braft-editor | 富文本编辑器 |
rc-form | (类组件)react 表单处理,提供一些列 api(检验,默认值,数据读写)等 |
react-spring | 交互动画库 |
react-error-boundary | 错误边界库 |
recoil | react 状态管理库 |
react-redux | react 封装的 redux 库 |
@emotion/styled @emotion/react | css-in方案 |
react-helmet | 网站head相关的设置 |
@welldone-software/why-did-you-render | 查看是谁渲染 |
immer | 数据不可变,直接改值 |
redux-toolkit | 使用immer与react-redux结合,最佳实践 |
swr | 与上面类似的兄弟库 |
react-beautiful-dnd | 拖拽库 |
@dnd-kit/core | 拖拽库 |
sonner | 比较普适的消息提示弹窗 |
react-dragable | 拖拽库 |
gridstack | 栅格化拖拽库 |
react-grid-layout | 栅格化拖拽库 |
rc-resize-observer | 大小监听组件 |
react-email | 邮件组件模板 |
swr | 接口请求库 |
react-transition-group | 动画库 |
react-animations | 动画库 |
react reveal | 动画库 |
tweenone | 动画库 |
immutabale.js | 数据不可变库, 反直觉 |
react-slick | 滑块轮播图组件, antd 内部使用的这个 |
react-icons | react 用的 icon 图标集 |
framer-motion | 丝滑的动画库 |
motion | 动画库 |
wouter | 一个轻量的route库 |
avvvatars-react | 精美的头像占位符 |
react-i18next | i18 库 |
recharts | 基于 d3 的 chart 图表库 |
react-typewriter | react 模拟打字动画的库 |
react-joyride | react 引导下一步流程库 |
@react-pdf/renderer | react pdf 渲染库 |
swiper | react 的轮播库 |
@tanstack/react-query | react 异步状态管理库 |
@react-spring/web | react 的动画库 |
react-top-loading-bar | 顶部加载条 |
react-image-cropper | 图片裁剪库 |
react-hot-toast | 消息提示组件 |
react.qrcode | 二维码生成 |
tldraw | 画板库 |
@blocknote/core | 类似 notion 的富文本库 |
react-error-boundary | 错误捕获 |
react-confetti | 庆祝的烟花纸屑动画 |
react-lazy-load-image-component | 图片懒加载库 |
react-window-infinite-loader | 加载更多库 |
react-window | 虚拟滚动库 |
lucide-react | lucide 图表库的 react 实现 |
formik | 小巧的表单处理库 |
ReactNative
包名 | 描述 |
---|---|
react-navigation | 导航条 |
react-native-looped-carousel | 轮播图 |
react-native-refresh-list-view | 上拉加载和下拉刷新 |
Next.js 类
包名 | 描述 |
---|---|
next-intl | 国际化库 |
server-only | 防止服务端组件, 在客户端渲染 |
next-auth | 集成常用的授权应用 |
next-sitemap | SEO 优化, 方便 google 检索你的网站 |
next-seo | SEO 优化, 生成一些常见的 metadata |
next-pwa | 快速创建离线应用 |
Next.js 最佳实践框架
包名 | 描述 |
---|---|
t3-app@latest | ts 一个推崇类型安全的 next 实践框架 |
UI 库
包名 | 描述 |
---|---|
@mui/material | mui 谷歌风格的 material 组件库 |
@mui/joy | mui 自己设计的组件库 |
Mantine | Mantine UI 库 |
shadcn/ui | 使用 tailwindcss 编写, 本地组件 |
Vue 类
包名 | 描述 |
---|---|
vue | vue 核心 |
@vue/compiler-sfc | 单文件编译器 |
工具
包名 | 描述 |
---|---|
vuedraggable | vue的拖拽库 |
vue-clipboard3 | 剪切板 |
vuex-persist | vuex持久化数据 |
vue-reuse-template | 组件内重用部分模板 - 安法师 (非组件) |
unplugin-vue-macros | 组件内重用部分模板 |
@tanstack/vue-query | 对标 react-query 的异步状态管理库 |
环境类
包名 | 描述 |
---|---|
typescript | ts 环境 |
zx | 用js编写bash脚本 |
构建优化
包名 | 描述 |
---|---|
@million/compiler | 自动优化构建的代码, vite 支持 |
Mock 服务
包名 | 描述 |
---|---|
msw | 比较新颖的 mock 服务 |
测试
基础库
包名 | 描述 |
---|---|
flush-promises | 将所有 promise 状态都改为完成 |
E2E
包名 | 描述 |
---|---|
nightwatch | 基于 webdriver.js 的测试框架 |
cypress | 高度内聚的集成测试框架 |
testcafe | 傻瓜智能的测试框架 |
后端
包名 | 描述 |
---|---|
supertest | 测试 http 的库 |
小程序
包名 | 描述 |
---|---|
weapp-tailwindcss | 小程序支持 tailwindcss |
全栈框架
包名 | 描述 |
---|---|
TanStack Start | tanstack 的全栈框架, 目前是 beta 版本 |
Nextjs | react技术栈 |
Nuxtjs | vue技术栈 |
Astro | 领先的分岛框架 |
文档构建
包名 | 描述 |
---|---|
docusaurus | 国外比较流行的 md 文档网站构建 |