awesome-npm-packages
这个仓库主要是收集一些非常好用的 npm package,主要面向使用 Node 的开发者。欢迎 Star 或 Fork。如果你有任何想法,或者知道一些好用的 package,请猛戳 PR 或 Issues 一起参与完善。非常欢迎您的参与,请在参与之前阅读 贡献指南 以更好的协作。
中文 | English
目录
工具库
网络服务框架
Express 中间件
Koa 中间件
测试工具
命令行工具
命令行开发工具库
JS 库
React 周边
Vue 周边
webpack 周边
babel 周边
gulp 周边
CSS 相关
其他
工具库
lodash - 具有一致接口、模块化、高性能等特性的现代化 JavaScript 工具库。
underscore - 跟 lodash 类似,提供了一系列有用的辅助函数。
ramda - 完全函数式编程思想实现的 Javascript 实用工具库。
delay - 在一定的时间内延迟执行 Promise。
eslint - 功能强大的 JavaScript 代码风格检查报告工具。
eslint-friendly-formatter - 以一种更加友好(指出文件和行号)的方式反馈 eslint 的错误。
eslint-config-airbnb - Airbnb JavaScript 代码风格的 ESLint 配置文件,包含 ECMAScript 6+ 和 React。
eslint-config-airbnb-base - Airbnb JavaScript 代码风格的 ESLint 配置文件,包含 ECMAScript 6+。
http-proxy - 支持 websockets 的 HTTP 代理库。
jsonwebtoken - JsonWebToken 在 Node 中的实践方案。
bcryptjs - 更好的 bcrypt 解决方案。
md5-file - 让你更轻松的计算文件的 MD5。
markdown-it - 快速、易扩展的 Markdown 解析器。
marked - 又一个全功能的 Markdown 解析器。
node-forge - TLS 和其他各种加密方式的原生实现。
pretty-bytes - 将字节转换成人类易读的字符串,例如:1337 → 1.34 kB。
filesize - 同样将文件大小格式的字符串转换成人类易读的字符串的工具。
qr-image - 二维码生成器。
socket.io - 这可能是史上最强大的 socket 实现库了。
validator - 字符串格式校验工具。
connect - 使用中间件机制的可扩展的 HTTP 服务框架。
passport - 强大的用户身份验证中间件。
dark-mode - 控制 macOS 的夜间模式状态。
run-jxa - 在 macOS 平台上通过 osascript 运行指定脚本。
js-yaml - 非常高效的 YAML 格式文件解析库。
csv - 简洁而又功能强大的 CSV 格式解析器。
moment - 这可能是功能最强大的时间、日期处理库了。
date-fns - 提供最全面、简单、一致的时间工具集,支持按需引入。
bluebird - 高性能的 promise 全特性实现库。
sequelize - 简单易用、支持多 SQL 语言的 ORM 实现。
opn - 跨平台的打开指定文件或者网站的小工具。
rabbit.js - 在 Node.JS 中使用 RabbitMQ 队列服务。
kue - 基于 redis 实现的 消息队列服务。
request - 简单、强大的 HTTP 请求库。
cheerio - 快速、灵活、针对服务端实现的 jQuery 核心 API 工具。
path-exists - 检测指定的路径是否存在。
conf - 让你非常容易的对应用或模块做配置处理。
nconf - 通过解析配置文件、环境变量、命令行参数让你轻松进行配置数据分层处理。
config - Node 应用的配置文件统一管理工具。
axios - 能够同时用于浏览器端和 Node.js 端的基于 Promise 的 HTTP 客户端。
uuid - 生成符合 RFC 规范的 UUID。
nanoid - 轻量级、安全、URL 友好的唯一字符串生成器。
fs-extra - 添加了很多原生 fs 模块中没有但实用的方法。
recursive-readdir - 递归列出目录及其子目录中的所有文件,不会列出目录。
mkdirp - Shell 命令 mkdir -p 的实现。
del - 删除指定的文件或目录。
busboy - 响应 HTML 表单数据的流解析器。
mongoose - 基于异步环境的 MongoDB 对象模型设计库。
semver - semver 语义化版本号解析器。
debug - 轻量级的兼容 Node 和浏览器环境的 debug log 管理工具。
log4js - 功能强大的日志管理工具,灵活适应多个环境。
pino - 拥有极高性能的日志分类管理的工具。
node-emoji - ✨在 Node.js 环境中使用 emoji 表情。
graceful-fs - 文件系统模块的替代模块,优化了很多原生模块的不足。
lockfile - 轻量级的添加文件锁的实用工具。
mime-types - 根据文件类型判断其 content-type。
ajv - 性能极佳的 JSON Schema 验证工具。
randomatic - 随机字符串生成器。
yauzl - 对文件进行解压(unzip)的工具。
portfinder - 当端口冲突时快速获取一个可用端口。
detect-port - 端口检测器。
cross-env - 兼容多平台的环境变量设置和获取工具。
tcomb - 兼容 Node 和浏览器环境的 Javascript 变量类型运行时检测工具。
hosted-git-info - 解析和转换 git host URL。
网络服务框架
express - 极简、灵活的 web 应用开发框架,提供了一系列强大的特性,帮助你创建各种Web 和移动设备应用。
koa - 由 express 原班人马打造的号称下一代的轻量级 web 应用开发框架。
Meteor - 用来开发实时网页程序的前后端同构框架。
hapi - 简单易用、以配置为中心的 web 服务框架。
egg - 阿里开源的为企业级框架和应用而生的服务端框架。
micro - 轻量级的微服务框架。
restify - 专注于构建 REST API 服务的轻量级服务端框架。
fastify - 性能优先并开销极低的服务端框架。
Express 中间件
compression - 请求压缩中间件,支持 deflate、gzip 编码压缩。
body-parser - 解析请求体的中间件。
express-session - session 管理中间件。
cookie-parser - 处理 Cookie 的中间件。
cookie-session - 基于 Cookie 实现 session 管理的中间件。
connect-timeout - 设置和管理请求超时时间的中间件。
csurf - CSRF 中间件。
cors - 用于启用 CORS 的中间件。
errorhandler - 用于开发环境处理错误信息的中间件。
morgan - Http 请求日志中间件。
response-time - 记录请求响应时间的中间件。
serve-favicon - favicon 服务中间节。
serve-index - 基于给定的路径渲染出目录列表。
serve-static - 提供静态文件服务。
vhost - 很方便的域名处理中间节。
express-validator - 依赖 validator 工具库实现的 express 验证中间件。
connect-redis - Redis session 存储中间件。
multer - 响应 multipart/form-data 的中间件。
helmet - 通过设置各种 HTTP 请求头,提高 Express 应用的安全性。
Koa 中间件
koa-router - Express 风格的路由处理中间件。
koa-static - 静态文件服务中间件。
koa-static-cache - 静态文件缓存中间件。
koa-session - 基于 cookie 的 session 中间件。
koa-favicon - favicon 服务中间件。
koa-compress - 压缩中间件。
koa-csrf - CSRF tokens 中间件。
koa-logger - 开发环境的日志记录中间件。
koa-react-view - React 服务端渲染中间件。
koa-redis - 使用 Redis 持久化 session 的中间件。
koa-bodyparser - 请求体内容解析中间件。
koa-ratelimit -请求频率限制中间件。
koa-jwt - JSON Web Tokens 验证中间件。
koa-multer - 响应 multipart/form-data 的中间件。
koa-locales - 实现多语言支持的中间件。
koa-markdown - 自动转化 Markdown 文件为 HTML 文件的中间件。
koa-helmet - 通过设置各种 HTTP 请求头,提高 Koa 应用的安全性。
测试工具
mocha - 简单、灵活、强大的 Node.js 单元测试框架。
ava - 面向未来的 Javascript 单元测试框架。
supertest - 专注测试 HTTP 服务的一款非常强大的测试工具。
istanbul - 测试代码覆盖率检测工具。
nyc - 支持 ava 的 istanbul 风格测试代码覆盖率检测工具。
faker - 让你在 Node 端和浏览器轻松构建大量用户信息的模拟数据。
mock-fs - 通过复写 fs 原生模块在内存中达到 Mock 文件的目的。
mock-require - 轻松、直观的 Mock 任何你想要操作的模块。
rewire - 对指定模块的私有成员进行单元测试。
chai - 兼容所有测试框架的跨平台 BDD / TDD 风格断言库,支持 Node.js 和浏览器。
should - BDD 风格的断言库。
expect.js - 基于 should 的 BDD 风格断言库。
power-assert - 没有记忆成本的断言库,大多数情况只需使用assert() 一个方法即可。
tempfile - 获取随机的临时文件路径。
temp-write - 将字符串 / buffer / stream 写入随机的临时文件中。
命令行工具
npm - Node.js 包管理工具。
yarn - 快速、可靠和安全的依赖管理工具。
puer - 具有 web 服务、自动重载、Mock 数据等多种功能的前端开发效率提升工具。
nrm - 非常方便的 NPM 源管理工具。
gh-pages-deploy - 通过读取 package.json 里的配置自动发布内容到 gh-pages
decheck - 使用命令行查看一个 npm 模块的依赖项。
coffee-script - 一种采用优雅的语法并编译到 JavaScript 的小语种。
commitizen - 让你轻松写成符合社区建议的 commit 格式的交互式工具。
eslint - Javascript 代码风格工具。
express-generator - Express 应用目录生成器。
koa-generator - Koa 应用目录生成器。
fecs - 百度出品的前端代码风格工具。
font-spider - 智能 WebFont 压缩工具,它能自动分析出页面使用的 WebFont 并进行按需压缩。
gifify - 通过命令行将视频转换为 GIF 动态图片。
gitbook-cli - GitBook 的命令行工具。
gitmoji-cli - 在 commit 信息中使用 emojis 的交互式工具。
hexo-cli - 静态博客系统 Hexo 的命令行工具。
ionic - Ionic 的命令行工具。
mjml - 轻松创建响应式邮件的命令行工具。
ngrok - ngrok 2 的 Node 版。
node-inspector - 基于 Blink 开发者工具的 Node.js 应用调试器。
nodemon - 开发阶段的应用热重载工具。
nodeppt - 功能强大的网页版演示库。
npms-cli - 命令行版的 npm package 搜索器。
placemat-cli - 开发阶段获取随机图片进行网站占位。
pm2 - 强大的负载均衡和进程管理工具。
slush - 基于流的应用脚手架生成器。
tldr - tldr 的命令行工具。
trash-cli - 移动文件至垃圾桶中,安心的删除文件。
lerna - 同时管理多个包的 Javascript 项目管理工具。
serve - 用于开发阶段的本地静态文件服务工具。
json-server - 零配置构建全能 REST API 风格的数据 Mock 服务器。
carbon-now-cli - 在终端使用 carbon.now.sh 服务。
命令行开发工具库
commander - 开发命令行工具的完整解决方案。
caporal - 特性全面的开发命令行工具框架。
yargs - 轻松解析命令行参数。
args - 开发命令行工具一个轻量级解决方案。
chalk - 让你的终端字符变得丰富多彩、五颜六色。
colors - 又一个给控制台中的字符添加颜色和样式的工具库。
consola - 用于开发 CLI 应用的优雅输出工具。
signale - 带有丰富的 loggers 并且 Hackable 的终端优雅输出工具。
chokidar - 更好的 fs.watch / fs.watchFile 替代方案。
glob - 使用 shell 模式来匹配文件路径。
mkdirp - mkdir -p 命令的 Node 实现。
ora - 非常方便的实现终端 loading 动画效果。
progress - 在终端实现的 ascii loading 效果,提供了丰富灵活的配置。
ssh2 - SSH2 的客户端和服务端实现方案。
cliparoo - 复制指定字符串到系统剪贴板。
clipboardy - 提供跨平台级的剪贴板操作支持。
inquirer - 提供了常见的几种交互式式命令行形式。
execa - 更好用的 child_process 替代方案。
node-notifier - 跨平台的发送系统原生通知的工具。
quick-local-ip - 快速获取本机 ip 的小工具。
ip - 提供了一些实用的 IP 相关的方法。可以获取 IP 地址、比较 IP地址和验证 IP 地址等。
update-notifier - 以非侵入性的方式(使用子进程“异步”检测)检查全局的包是否需要更新并自动通知用户。
update-check - 通过暂时阻塞命令执行的“同步”方式检测全局的包是否需要更新。
path-type - 检测指定的路径是否是文件、目录的工具库。
boxen - 在终端中创建出盒子(矩形)。
dargs - 将对象反向序列化为命令行参数形式的数组。
shelljs - 执行 Unix shell 命令。
前端 JS 库
rxjs - 大名鼎鼎的 Reactive 反应式编程的 JS 实现。
clipboard.js - 这可能是最好用的复制到剪贴板的工具库了。
g2 - 蚂蚁金服出品的数据可视化库。
React 周边
react - Facebook 开发的大名鼎鼎的构建用户界面的轻量级框架。
react-dom - Facebook 开发的大名鼎鼎的构建用户界面的轻量级框架 React 的 DOM 端。
redux - 可预测的 JavaScript 应用程序的状态管理容器。
react-redux - Redux 官方实现的绑定至 React 库。
react-router-dom - 为 react 而生的声明式路由库。
react-router-config - React Router 的静态路由配置助手。
react-router-redux - 将你的应用状态和路由保持同步。
redux-observable - 在 redux 中使用 RxJS 的中间件。
@reach/router - React Router 原作者打造的另一款具有极简 API 的轻量级路由库。
Vue 周边
vue - 构建 Web UI 的渐进式 JavaScript 框架。
vue-cli - Vue 项目脚手架。
vuetify - Material 设计风格的 UI 组件库。
webpack 周边
webpack - 目前为止最强大的 JS 模块加载器。
copy-webpack-plugin - 在 webpack 中执行复制文件和文件夹的任务。
css-loader - 为 webpack 服务的 CSS 加载器。
eslint-loader - 为 webpack 服务的 eslint 加载器。
extract-text-webpack-plugin - 从文件中提取特定的内容。
file-loader - 为 webpack 服务的文件加载器。
friendly-errors-webpack-plugin - 非常好用的改善 webpack 的错误提醒插件。
html-webpack-plugin - 自动创建 HTMl 文件供 webpack 打包使用。
optimize-css-assets-webpack-plugin - CSS 静态资源压缩、最小化的插件。
pug-loader - 为 webpack 服务的模板引擎 pug 加载器。
react-hot-loader - React 组件热重载插件。
sass-loader - 为 webpack 服务的 Sass 加载器。
less-loader - 为 webpack 服务的 Less 加载器。
style-loader - 将 CSS 样式添加至 style 标签中。
url-loader - 为 webpack 服务的静态资源 URL 服务加载器。
webpack-bundle-analyzer - 非常实用的 webpack 构建分析器。
webpack-serve - 精简、现代、灵活的 webpack 开发服务器。
webpack-dev-middleware - webpack 开发服务器中间间。
webpack-hot-middleware - webpack 热重载中间间。
webpack-merge - 合并多个 webpack 配置参数。
babel 周边
babel-core - babel 核心实现。
babel-loader - 为 webpack 服务的 babel 加载器。
babel-preset-es2015 - 编译 ES2015 的 babel 插件。
babel-preset-react - 编译 React 的 babel 插件。
babel-preset-stage-1 - 编译 ES stage 1 阶段的 babel 插件。
babel-preset-stage-2 - 编译 ES stage 2 阶段的 babel 插件。
babel-preset-stage-3 - 编译 ES stage 3 阶段的 babel 插件。
gulp 周边
gulp - 基于流的前端自动化构建工具。
gulp-changed - 通过比较源文件和生成文件来实现 Gulp 的增量编译。
gulp-cached - 通过在内存中缓存文件和内容来实现 Gulp 的增量编译。
gulp-remember - 同样在内存中缓存所有文件来实现 Gulp 的增量编译,和 gulp-cached 搭配使用效果更好。
gulp-newer - 同样通过比较源文件和生成文件来实现 Gulp 的增量编译。
gulp-gh-pages - 使用 Gulp 自动部署内容到 GitHub pages。
gulp-yaml - 将 YAML 文件转化为 JSON 的工具。
gulp-imagemin - 在 Gulp 中自动进行图片压缩。
gulp-imageisux - 智图 的 Gulp 插件。
gulp-lazyimagecss - 高效地书写 CSS 必备,自动生成图片CSS属性,如:width & height 等。
gulp-svg-inline - 内联 svg 文件到 CSS。
gulp-svg-symbols - 转化 svg 为 symbols。
gulp-cssnano - 在 Gulp 中使用 cssnano 进行 CSS 压缩。
gulp-postcss - 在 Gulp 中使用 PostCSS 。
gulp-autoprefixer - 在 Gulp 中使用 Autoprefixer 进行 CSS 前缀自动补全。
gulp-babel - Babel 的 Gulp 插件。
gulp-if - 有条件的运行任务。
gulp-uglify - 使用 UglifyJS2 来压缩 JS 文件。
gulp-less - LESS 编译插件。
gulp-rename - 让你很容易的重命名一些文件。
gulp-replace - 一个字符串替换
CSS 相关
hamburgers - 使用 CSS 制作的各种 hamburger 动画图标。
其他
pell - 非常轻量级且无依赖的 Web WYSIWYG(所见即所得)编辑器,能够轻松和 Vue 、React 集成。