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 语法高亮

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 中有意思的包

  • moment 强大的日期处理库;
  • waveform-data 读取音频文件,生成波形图;
  • lunar-calendar 传入日期,即可获取较为详细的农历数据,其中还包含了节日和节气数据,很方便;
  • qrcode.vue 比较好用的二维码 Vue 组件;
  • vue-waterfall 比较好用的瀑布流 Vue 组件;
  • hot-key 浏览器快捷键监听;
  • nodemon Node.js 的热重载调试辅助;



作者:djyuning
链接:https://www.jianshu.com/p/43e73134ec42
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。