Node.js 常用工具、依赖和插件

本文收集了 Node.js 中常用的工具、依赖包和插件等,涵盖了 应用、后端框架、前端框架、UI 组件、工具库、功能插件和解决方案等。

Node.js

Git上一个较为全面的汇总:awesome-nodejs

目录

Dependency Management 依赖管理

Application 应用

Framework 框架

Build 打包编译

Template Engine 模板引擎

CSS Preprocessor CSS预处理器

Responsive UI Framework 响应式 UI 框架

Editor 编辑器

Chart 图表

Syntax Highlighter 语法高亮

Database 数据库

Status & Storge 状态和存储

Security 安全

Task 任务

Test 测试

Dependency Management 依赖管理

NPM Node.js 自带的包管理工具,国内访问可能会较慢,甚至出错,时好时坏!

CNPM 正是因为 NPM 经常抽筋,所以国内才有了 CNPM,这是一个完整 npmjs.org 镜像,可代替官方版本,同步频率目前为 10分钟,访问速度快,命令行输出也比较友好。

Yarn 是 Facebook 推出的,一个可能取代 npm 的新型包管理器,据说速度很快,国内用户也可以为其设置淘宝镜像!😶

Application 应用

本部收录了一些使用 Node.js 相关的技术实现的具体产品,这些产品中有些已经用于实际生产,有些仅仅是学习之用。

Node club 是使用 Node.js 和 MongoDB 开发的社区系统 http://cnodejs.org/

KeystoneJS 是一个基于 Express 与 Mongoose 的 Node.js CMS 内容管理平台和Web应用平台。使用它可以方便快速建立基于数据库驱动的网站应用,还提供了安全认证和会话管理、动态路由、能够对密码自动加密、表单校验处理、自动产生管理界面、Email邮件发送等。

Apostrophe 一个 CMS 框架,支持上下文编辑和灵活的插件。

Firekylin 基于 ThinkJS 2.0 & ReactJS & ES2015+ 开发的一个简约高效的博客系统。

StrongLoop 是一个基于 Node.js 开发的 API 服务,它最著名的一款实时性能监测产品叫 StrongOps,通常也叫做Nodefly。StrongLoop套件包含了LookBack、StrongOps、StrongNode这三个产品。

Hexo - 高效、简洁、强悍的博客。

ghost - 简洁、功能强大的发布平台。

Framework 框架

本部可分为后端框架、前端框架、工具库 三个部分。

后端框架

Express 快速、开放、极简的 web 开发框架。

Koa koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。

egg 阿里开源的企业级 Node.js 框架,号称为企业级框架和应用而生。

ThinkJS 一款可以使用 ES6/7 特性开发项目的 Node.js 框架,使用 async/await 或者 */yield 彻底解决异步回调的问题,同时支持 TypeScript。

Derby 是一个MVC框架,帮助编写实时,交互的应用。可以运行在Node.js或者浏览器环境中。还拥有一个数据同步引擎Racer。

Sails.js 可以很容易地开发定制的,企业级的和现代的 Node.js 应用程序,也适合于开发图表、仪表盘和游戏。

Total.js 另一个伟大的 Node.js 框架,帮助创建网页和网络应用程序,还支持 MVC 架构。这是一个开源的现代框架,使用 HTML,JavaScript 和 CSS 建设网站。

Locomotive 支持 MVC 模式,REST 风格的路由也是基于 Express 构建的。

Socketstream 具有快速和模块化的特性,致力于打造实时的单页面应用程序。

Geddy 是一款简单,结构化和原始的 Node.js MVC 开发框架,用于构建高级 WEB 应用程序,它还拥有一个 RESTful 的路由、模板渲染、控制器和模型。

Grasshopper 一款功能丰富且非常灵活的Node.js框架,基本上支持所有的Web开发特性。GitHub

Chocolate.js 是一个实验性的全栈 Node.js 框架,基于它可以使用 CoffeeScript

语言建立 WEB App。

CompoundJS 是一个 Node.js 的 MVC 框架,开发者使用它在几分钟内即可构建一款 Web 应用。

partial.js

flatiron

Express-IO

Datachannel.io

Chair 支付宝前端团队推出的,基于Node.js的Web框架,适用于大部分的Web应用。

前端框架

NervJS 京东凹凸实验室开发的一款兼容 IE8 的轻量级前端框架,推荐 typescript 语法;

Vue.js 国人开发渐进式 JavaScript 框架,小巧而灵活的同时保留其他框架的优势,是目前最受欢迎的框架;

AngularJS 诞生于2009年,核心功能:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。

React 起源于 Facebook 的内部项目,其性能出众,代码逻辑简单,越来越多的人开始关注和使用,并认为它可能是将来 Web 开发的主流工具。

Primus Transformer 的创造者,并且也被称为通用包装器实时框架;Primus 里包含了大量的用于 Node.js 的实时框架,并且它们都拥有各种不同的实时功能。此外,Primus 还提供了通用的低级别接口用于各个实时框架之间进行通信。

DozerJS 一款旨在开发可扩展的 RESTful 风格的 API 和 Web 服务来支持前端开发。

KnockoutJS 是一个轻量级的UI类库,通过应用MVVM模式使JavaScript前端UI简单化。比如列表数据项增减后,不需要重新刷新整个控件片段或自己写JS增删节点,只要预先定义模板和符合其语法定义的属性即可。

工具库

core-js js 骚操作库;

lodash 一个具有一致接口、模块化、高性能等特性的 JavaScript 工具库。

Dojo Toolkit 是一款功能非常强大的 JavaScript 类库,可以实现任何功能。

Build 打包编译

本部收录一些可以将 HTML 编译为 Desktop app 或 Mobile app 的工具。

Cordova 📱其主要用于构建移动应用。Cordova 提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。Cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码。支持主流的移动擦操作系统。

Electron 🖥 提供了丰富的本地(操作系统)的API,使你能够使用纯 JavaScript 来创建桌面应用程序。与其它各种的 Node.js 运行时不同的是 Electron 专注于桌面应用程序而不是Web服务器。

PhoneGap 📱允许你利用现有的 Web 开发技术快速开发混合手机应用程序,如,HTML、CSS 和 JavaScript。

Appcelerator 🖥 📱是一个开源的应用开发平台,它允许你使用像 HTML,JavaScript 和 CSS 这样的web技术来创建原生应用(移动应用和桌面应用)。

React Native 📱结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用。在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替 DOM 元素来渲染等。

Xamarin 📱始创于2011年,旨在使移动开发变得难以置信地迅捷和简单。Xamarin的产品简化了针对多种平台的应用开发,包括iOS和 Android。Xamarin由许多著名的开源社区开发者创立和参与,而且也是Mono项目的主导者——C#与.NET框架的开源、跨平台实现。

Meteor📱是另一个开发交互式移动应用的 JavaScript 框架。Meteor 不仅能让你用 JavaScript 开发移动应用,还能让持续控制应用。在这个特性下,你可以更新 JavaScript 代码,并通过实时代码推送功能将其立即发布给所有移动平台的用户,而这一切都可以不需要开发者支持。

NativeScript 🖥 📱是 Telerik 发明的从单一的源代码构建多平台的本地移动应用程序工具集。NativeScript 网站和 GitHub 页面描述运行时使开发人员能够利用 JavaScript 和 TypeScript(甚至Angular 2.0)来为安卓、iOS、构建本地应用程序,并提供代码平台。

Ratchet 📱是顶级 JavaScript 框架的另一个主要元素,用来开发移动应用程序。它旨在为开发人员和设计人员提供了一个框架来构建移动 web 应用程序。该框架是由为我们带来 Bootstrap 的同一个团队创造,以确保 Ratchet 高质量。不管你想要的目标是 Android,iOS,或两者兼而有之,Ratchet 2.x 都能帮你实现

AppMeme 🖥

Template Engine 模板引擎

jade 一个高性能的模板引擎,它深受 Haml 影响,它是用 JavaScript 实现的,并且可以供 Node 使用。

ejs 用来从 JSON 数据中生成 HTML 字符串。

doT 特点是快、小,无依赖其他插件。GitHub

swig 一个优秀简洁的模板引擎,类似 Python 模板引擎 Jinja, 目前不仅在 node 端较为通用, 在浏览器端也可以很好地运行。GitHub

dust.js 一个 JS 异步模板引擎,可用于浏览器和 Node.js 环境,同时支持客户端和服务端渲染,模版编译成JS后使用,性能好。

Handlebars.js 语义模板库,通过对 view 和 data 的分离来快速构建 Web 模板。

CSS Preprocessor CSS预处理器

关于 CSS 预处理器的解释:http://www.w3cplus.com/css/css-preprocessor-sass-vs-less-stylus-2.html

less 现在最为流行的CSS预处理器之一,Sass强有力的竞争者。

sass 已经有 8 年的开源历史项目,可以说他定义了现代 CSS 预处理器也不为过。

stylus 是功能丰富的 CSS 扩展,有 60 多种自定义函数,包括saturation(),可以推算适配 CSS 饱和颜色。

Turbine 如果你是一个 PHP 爱好者,那么 Turbine 非常适合你,很简单的语法、自动 gzip 多个 css 文件,修复了跨浏览器的问题等等。

CSS-Crush

Myth

rework

CSS Cacheer 可让开发人员创建 CSS 插件,要求 PHP 和 apache 的 mod_deflate 和 mod_rewrite 模块。

DtCSS 是一个 PHP 脚本,用来对 CSS 文件进行预处理。DtCSS 可通过扩展 CSS 的特性来加速 CSS 编码。例如嵌套选择器、颜色混合等等。DtCSS 读取 CSS 文件并对特殊语法进行处理,然后输出标准 CSS。DtCSS 包含一个智能的缓存系统。

CSS PP 提供 PHP、Python 和 Ruby 的版本

Responsive UI Framework 响应式 UI 框架

AT UI 京东凹凸实验室开发的一款轻量级、模块化的前端 UI 组件库;

bootstrap 简洁、直观、强悍的前端开发框架,让 WEB 开发更迅速、简单;

bootstrap Vue 基于 Vue.js 2 的 Bootstrap 4组件;

Flat UI 基于 bootstrap 3.2 美化的免费 WEB 界面工具组件库;

Material UI 实现 Material Design 的响应式组件系统;

UIKit 一款轻量级、模块化的前端框架,用于开发快速且强大的 Web 界面;

Amaze UI 是一个轻量级、 Mobile first 的前端框架, 基于开源社区流行前端框架编写的;

Muse 基于 Vue 2.0 和 Material Design 的 UI 组件库

Semantic UI 完全语义化的前端界面开发框架

Element 网站快速成型工具

iView 一套基于 Vue.js 的高质量 UI 组件库

ZUI 一个基于 Bootstrap 深度定制开源前端实践方案,帮助你快速构建现代跨屏应用。

Pure CSS 一组小的、响应式CSS模块,可用于任意Web项目中。

Gumby Framework 允许用户自主快速的开发扩展 Gumby,同时提供很多新的工具来自定义和扩展 Gumby 框架

Foundation 一个易用、强大而且灵活的框架,用于构建基于任何设备上的Web应用。提供多种Web上的UI 组件,如表单、按钮、 标签等。

Kube 足够的简单,足够小,具有很强的自适应能力,是个响应式的 CSS 框架

H-ui 轻量级前端框架,简单免费,兼容性好。

Layui 一款采用自身模块规范编写的国产前端 UI 框架,遵循原生HTML/CSS/JS的书写与组织形式,组件丰盈,非常适合界面的快速开发。

SUI 是一套基于bootstrap开发的前端组件库,同时她也是一套设计规范。

MZUI 📱 为移动端设计,基于 Flex 的 UI 框架。

WeUI 📱 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。

VUX 📱 是基于 WeUI 和 Vue(2.x) 开发的移动端 UI 组件库,主要服务于微信页面。

FrozeUI 📱一个开源的简单易用,轻量快捷的移动端UI框架。基于手 Q 样式规范,选取最常用的组件,做成手 Q 公用离线包减少请求,升级方式友好,文档完善,目前全面应用在腾讯手Q增值业务中。

YDUI Touch📱 专为移动端打造,在技术实现、交互设计上兼容主流移动设备,保证代码轻、性能高;使用 Flex 技术,灵活自如地对齐、收缩、扩展元素,轻松搞定移动页面布局;实现强大的屏幕适配布局,等比例适配所有屏幕。

AlloyUI 是基于YUI 3的前段UI框架,包含一套丰富的(超过60)UI 部件,如图片库,对话框,树形结构,面板,自动完成,按钮,日历控件,工具条等。

拼图 优秀的国产响应式css开源框架,自动适应手机,平板,电脑

EasyUI 帮助你快速构建 WEB 应用的前端框架

J-UI 国产的 jQuery UI 富客户端框架

LingerUI 国产前端框架

BUI

kissy An Enjoyable UI Library

Editor 编辑器

markdown 一个 markdown 解析包。NPM

simditor Simditor 是团队协作工具 Tower 使用的富文本编辑器。功能精简,加载快速。GitHub

editor.md 一个基于jQuery和CodeMirror构建的在线Markdown文档编辑器,支持实时预览和多语言语法高亮,兼容主流的浏览器(IE8+),且支持iPad等平板设备,支持流程图 flowchart 和时序图 sequenceDiagram。GitHub

CFEditor 这是 classfoo 全站所使用的所见即所得富编辑器,其使用 BootStrap 3.x 样式,最低支持 IE 8。

CKEditor 新一代的 FCKeditor,是一个重新开发的版本。

ueditor 百度研发,功能强大,兼容性强,配置项丰富,界面美观。

kindeditor 老牌可视化编辑器,体积相对较小,个性化简单,兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器。

tinymce 灵活的配置。

Summernote 是一款轻量的 Bootstrap 编辑器,压缩后实际大小为 58KB,最低支持为 IE 9。

wangEditor

bootstrap-wysiwyg

Chart 图表

echarts 百度开发,功能强大,中文文档丰富

Chart.js 口碑很好的图表插件,功能强大

c3 GitHub

Chartkick

Syntax Highlighter 语法高亮

highlight.js 目前最流行的语法高亮插件 GitHub

syntaxhighlighter GitHub

highlight GitHub

highlighter NPM

Database 数据库

该部收录的均为 NPM 提供的数据库操作模块。

mysql NPM

mongoose NPM

sqlite NPM,一款轻型的数据库,是遵守 ACID 的关系型数据库管理系统,它包含在一个相对小的C库中。

redis NPM,一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Lowdb NPM,一个基于 loadsh API 的小型本地数据库。

Status & Storge 状态和存储

storge-js NPM

cookie NPM

session NPM

cookie-parser NPM

cookie-session 会序列化整个的会话信息到 cookie 中,对于浏览器一般会有 cookie

的大小限制,所以使用它的时候要注意不要存储的数据太大,超过了限制。

express-session 会将数据保存在服务器端,而且仅仅会在 cookie 中保存会话的 id,默认使用内存保存。

koa-session NPM

Security 安全

Helmet 可以帮助你的app抵御一些比较常见的 WEB 安全隐患,它其实是将多个安全中间件集中到了一起,大部分都是对于 HTTP Header 的操作。

Task 任务

cron 执行定时任务 NPM

node-cron 执行定时任务 NPM

Test 测试

Mocha 诞生于 2011 年,是现在最流行的 JavaScript 测试框架之一,在浏览器和 Node 环境都可以使用。

tape 是 substack 写的测试框架,核心价值观是”Tests are code”,所以你可以像代码一样跑测试。

Jasmine 不依赖于任何框架,所以适用于所有的Javascript代码。

Qunit

istanbul 用于生成测试覆盖率报告。

NPM 中有意思的包

moment 强大的日期处理库;

waveform-data 读取音频文件,生成波形图;

lunar-calendar 传入日期,即可获取较为详细的农历数据,其中还包含了节日和节气数据,很方便;

qrcode.vue 比较好用的二维码 Vue 组件;

vue-waterfall 比较好用的瀑布流 Vue 组件;

hot-key 浏览器快捷键监听;

nodemon Node.js 的热重载调试辅助;

那些看上去短小精悍的代码,可能危机重重 —— 注重代码排版是一种修养!

以上内容为本人汇总备查,大部分资源翻译参考或来自网络,感谢原作者!整理时间有限,手头项目也没有完全覆盖,有增补内容可以留言给我,3Q。