本文收集了 Node.js 中常用的工具、依赖包和插件等,涵盖了 应用、后端框架、前端框架、UI 组件、工具库、功能插件和解决方案等。
Node.jsGit上一个较为全面的汇总: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增删节点,只要预先定义模板和符合其语法定义的属性即可。
工具库
- 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 图表
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 任务
Test 测试
- Mocha 诞生于 2011 年,是现在最流行的 JavaScript 测试框架之一,在浏览器和 Node 环境都可以使用。
- tape 是 substack 写的测试框架,核心价值观是”Tests are code”,所以你可以像代码一样跑测试。
- Jasmine 不依赖于任何框架,所以适用于所有的Javascript代码。
- Qunit
- istanbul 用于生成测试覆盖率报告。
NPM 中有意思的包
- waveform-data 读取音频文件,生成波形图;
- lunar-calendar 传入日期,即可获取较为详细的农历数据,其中还包含了节日和节气数据,很方便;
- qrcode.vue 比较好用的二维码 Vue 组件;
- vue-waterfall 比较好用的瀑布流 Vue 组件;
那些看上去短小精悍的代码,可能危机重重 —— 注重代码排版是一种修养!
以上内容为本人汇总备查,大部分资源翻译参考或来自网络,感谢原作者!整理时间有限,手头项目也没有完全覆盖,有增补内容可以留言给我,3Q。
网友评论