Awesome系列的JavaScript资源整理。awesome-javascript是sorrycc发起维护的 JS 资源列表,内容包括:包管理器、加载器、测试框架、运行器、QA、MVC框架和库、模板引擎、数据可视化、时间轴、编辑器等。
前端MVC 框架和库
angular.js:为网络应用增强 HTML。官网aurelia:一个适用于移动设备、桌面电脑和 web 的客户端 JavaScript 框架。官网backbone:给你的 JS 应用加入带有 Models、Views、Collections 和 Events 的 Backbone。官网batman.js:最适合 Rails 开发者的 JavaScript 框架。官网ember.js:一个旨在创建非凡 web 应用的 JavaScript 框架。官网meteor:一个超简单的、数据库无处不在的、只传输数据的纯 JavaScript web 框架。官网ractive:新一代 DOM 操作。官网vue:一个用于构建可交互界面的、直观快速和可组合的 MVVM 框架。官网knockout:Knockout 用 JavaScript 让创建响应式的富 UI 更加容易。官网 spine:构建 JavaScript 应用的轻量 MVC 库。官网espresso.js:一个极小的、用于制作用户界面的 JavaScript 库。官网canjs:让 JS 更好、更快、更简单。官网react:用于建构用户界面的库。它是声明式的、高效的和极度灵活的,并使用虚拟 DOM 作为其不同的实现。官网react-native:一个用 React 构建原生应用的框架。官网riot:类 React 库,但很轻量。官网thorax:加强你的 Backbone。官网chaplin:使用 Backbone.js 库的 JavaScript 应用架构。官网marionette:一个 Backbone.js 的复合应用程序库,旨在简化大型 JavaScript 应用结构。官网ripple:一个小巧的、用于构建响应界面的基础框架。官网rivets:轻量却拥有强大的数据绑定和模板解决方案官网derby:让编写实时和协同应用更简单的 MVC 框架,能够在 Node.js 和浏览器同时运行。官网derby-awesome:很棒的 derby 组件集合。官网way.js:简单、轻量、持久化的双向数据绑定。官网mithril.js:Mithril 是一个客户端 MVC 框架(轻量、强大和快速)官网jsblocks:jsblocks 是一个更好的 MV-ish 框架。官网LiquidLava:易懂的、用于构建用户界面的 MVC 框架。官网包管理器
管理着 javascript 库,并提供读取和打包它们的工具。
npm:npm 是 javascript 的包管理器。官网Bower:一个 web 应用的包管理器。官网component:能构建更好 web 应用的客户端包管理器。官网spm:全新的静态包管理器。官网jam:一个专注于浏览器端和兼容 RequireJS 的包管理器。官网jspm:流畅的浏览器包管理器。官网Ender:没有库文件的程序库。官网volo:以项目模板、添加依赖项与自动化生成的方式创建前端项目。官网Duo:一个整合 Component、Browserify 和 Go官网的最佳思想,使开发者能快速方便地组织和编写前端代码的下一代包管理器。加载器
JavaScript 的模块或加载系统。
RequireJS:JavaScript 文件和模块的加载器。官网browserify:在浏览器端以 node.js 的方式 require()。官网SeaJS:用于 Web 的模块加载器。官网HeadJS:HEAD 的唯一脚本。官网curl:小巧、快速且易扩展的模块加载器,它能处理 AMD、CommonJS Modules/1.1、CSS、HTML/text 和历史脚本。官网lazyload:小巧且无依赖的异步 JavaScript 和 CSS 加载器。官网script.js:异步 JavaScript 加载器和依赖管理器。官网systemjs:AMD、CJS(commonJS) 和符合 ES6 规范的模块加载器。官网LodJS:基于 AMD 的模块加载器。官网ESL:浏览器端的模块加载器,支持延迟定义和 AMD。官网modulejs:轻量的 JavaScript 模块系统。官网打包工具
browserify :Browserify 让你能在浏览器端使用 require(modules) ,打包所有依赖。官网webpack:为浏览器打包 CommonJs/AMD 模块。官网测试框架
框架
mocha:适用于 node.js 和浏览器、简易、灵活、有趣的 JavaScript 测试框架。官网jasmine:简单无 DOM 的 JavaScript 测试框架。官网qunit:一个易于使用的 JavaScript 单元测试框架。官网jest:简单的 JavaScript 单元测试框架。官网prova:基于 Tape 和 Browserify 的测试运行器,它适用于 Node & 浏览器。官网DalekJS:自动化且跨浏览器的 JavaScript 功能测试框架。官网断言
chai:适用于 node.js 和浏览器的 BDD / TDD 断言框架,并能搭配其它测试框架使用。官网Sinon.JS:对 JavaScript 进行 spies、stubs 和 mock 测试。官网expect.js:简约的、适用于 Node.js 和浏览器端的 BDD 式断言工具。官网should.js:适用于 Node.js 的 BDD 式断言工具。官网覆盖率
istanbul:另一个 JS 代码覆盖率检测工具。官网blanket:一个简单的代码覆盖率检测库。它的设计理念是易于安装和使用,且可用于浏览器端和 node.js。官网JSCover:JSCover 是一个检测 JavaScript 程序代码覆盖率的工具。官网运行器
phantomjs:脚本化的 Headless WebKit。官网slimerjs:一个内核为 Gecko 的类似 PhantomJS 工具。官网casperjs:基于 PhantomJS 和 Slimer JS 的导航脚本和测试工具。官网 zombie:基于 node.js 、快速、全栈且无图形界面的浏览器的测试工具。官网totoro:一个简单可靠且能跨浏览器运行的测试工具。官网karma:一个优秀的的 JavaScript 测试运行器。官网nightwatch:基于 node.js 和 selenium webdriver 的图形界面自动化测试框架。官网intern:下一代 JavaScript 代码测试栈。官网yolpo:在浏览器逐句执行的 JavaScript 解释器。官网QA 工具
JSHint:JSHint 是一个有助于发现 JavaScript 代码错误和潜在问题的工具。官网jscs:JavaScript 代码风格检测工具。官网jsfmt:格式化、搜索和改写 JavaScript。官网jsinspect:检测复制粘贴和结构类似的代码。官网buddy.js:发现 JavaScript 代码里的 魔术数字。官网ESLint:完全插件化的工具,能在 JavaScript 中识别和记录模式。官网JSLint :高标准、严格和固执的代码质量工具,旨在只保持语言的优良部分。官网基于 Node 的 CMS 框架
KeystoneJS:强大的 CMS 和 web 应用框架。官网Reaction Commerce:拥有实时的架构和设计的响应式(reactive) CMS。官网Ghost:简单、强大的发布平台。官网Apostrophe:提供内容编辑和基本服务的 CMS。官网We.js:适用于实时应用、网站或博客的框架。官网Hatch.js:拥有社交特性的 CMS 平台。官网TaracotJS:拥有快速、极简风格特点且基于Node.js 的 CMS。官网Nodizecms:为 CoffeeScript 爱好者准备的 CMS。官网Cody:拥有所见即所得的编辑器的 CMS。官网PencilBlue:CMS 和博客平台。官网模板引擎
模板引擎允许您执行字符串插值。
mustache.js:是 JavaScript 中带有 {{mustaches}} 的最简模板。官网handlebars.js:是 Mustache 模板语言的扩展。官网hogan.js:是 Mustache 模板语言的编译器。官网doT:最快速简洁的 JavaScript 模板引擎,适用于 nodejs 和浏览器。官网dustjs:适用于浏览器和 node.js 的异步模板。官网eco:嵌入式的 CoffeeScript 模板。官网JavaScript-Templates:轻量(小于 1KB)、快速且无依赖的强大 JavaScript 模版引擎。官网t.js:小巧的 JavaScript 模板框架,压缩后约为 400 字节。官网Jade:健壮的、优雅且功能丰富的 nodejs 模板引擎。官网EJS:高效的 JavaScript 模板。官网xtemplate:可扩展的模板引擎,适用于 node 和浏览器。官网marko:快速轻量且基于 HTML 的模板引擎,支持异步、流、自定义标签和 CommonJS 模编译后输出。适用于 Node.js官网和浏览器。数据可视化
Web 数据可视化工具
d3:一个对 HTML 和 SVG 进行可视化的 JavaScript 库。官网metrics-graphics:更简洁和拥有更规范的数据图表布局优化算法的库。官网pykcharts.js:经过精心设计后,去除 d3.js 复杂性的 d3.js 图表库。官网three.js:JavaScript 3D 库。官网Chart.js:简单的、基于 canvas 标签的 HTML5 图表库。官网paper.js:是矢量图形脚本中的瑞士军刀 —— 使用 HTML5 Canvas 将 Scriptographer 移植到 JavaScript官网和浏览器。fabric.js:JavaScript Canvas 库,SVG 与 Canvas 可以相互解析。官网peity:进度条、线状和饼状图。官网raphael:JavaScript 矢量库。官网echarts:商业产品图表。官网vis:动态的、基于浏览器的可视化库。官网two.js:一个渲染器无关的适用于 web 的二维绘图 api 。官网g.raphael:基于 Raphaël 图表库。官网sigma.js:一个致力于图形绘画的 JavaScript 库。官网arbor:一个使用 web workers 和 jQuery 的图形可视化库。官网cubism:可视化时间序列的 D3 插件。官网dc.js:与 crossfilter 无缝合作的多维图表绘制库,使用 d3.js 渲染。官网vega:一套可视化语法。官网processing.js:Processing.js 基于 Web 标准使数据可视化,而无需任何插件。官网envisionjs:动态的 HTML5 可视化。官网rickshaw:用于构建交互式实时图表的 JavaScript 工具包。官网flot:吸引人的、基于 jQuery 的 JavaScript 图表库。官网morris.js:漂亮的时间序列线框图。官网nvd3:一个为 D3.js 构建可复用图表和图表组件的库。官网svg.js:一个轻量的、用于操作和添加 SVG 动画的库。官网heatmap.js:基于 HTML5 canvas 的热力图 JavaScript 库。官网jquery.sparkline:一个直接在浏览器端生成小型走势图的 jQuery 插件。官网xCharts:一个基于 D3、用于构建自定义图表和图形的库。官网trianglify:基于 d3.js 的低多边形(low poly)风格背景图片生成器。官网d3-cloud:创建词云(word cloud)效果的 JavaScript 库。官网d4:一个基于 D3 、友好、可复用的 DSL 图表库 。官网dimple.js:基于 d3 的简易商业分析图表库。官网chartist-js:简单的响应式图表。官网epoch:一个通用的实时图表库。官网c3:基于 D3 的可复用图表库。官网BabylonJS:一个运用 HTML5 和 WebGL 构建 3D 游戏的框架。官网也有一些很棒的收费库,如 amchart、plotly 和 highchart。
时间轴
TimelineJS: 一个用 JavaScript 编写的可叙事时间轴库。官网timesheet.js:用于构建简单的 HTML5 & CSS3 时间表的 JavaScript 库。官网编辑器
ace:Ace(Ajax.org Cloud9 Editor)。官网CodeMirror:浏览器端的代码编辑器。官网esprima:用于综合分析的 ECMAScript 解析器。官网quill:一个带有 API 的跨浏览器富文本编辑器。(官网)medium-editor:Medium.com 所见即所得编辑器的克隆版。官网pen:享受在线编辑(支持 markdown)。官网的魅力。官网bootstrap-wysiwyg:小巧的、兼容 bootstrap 的所见即所得的富文本编辑器。官网ckeditor-releases:适用于每个人的 web 文本编辑器。官网editor:一个 markdown 编辑器,但仍在开发中。官网EpicEditor:一个可嵌入的 JavaScript Markdown 官网的编辑器,拥有全屏编辑、即时预览、自动保存草稿和离线支持等功能。jsoneditor:查看、编辑和格式化 JSON 的 web 工具。官网vim.js: 拥有持久化 ~/.vimrc 的 Vim 编辑器的 JavaScript 移植版本。官网Squire:HTML5 富文本编辑器。官网TinyMCE:JavaScript 富文本编辑器。官网trix:由 Basecamp 制作,适用于每天写作的富文本编辑器。官网文件
处理文件的库。
Papa Parse:一款强大的 CSV 库,支持解析 CSV 文件/字符串,也能导出 CSV。官网jBinary:对用声明式语法描述文件类型和数据结构的二进制文件,进行高级 I/O(加载、解析、操作、序列化、存储)操作。官网函数式编程
函数式编程库扩展了 JavaScript 的能力。
underscore:JavaScript 的实用工具。官网lodash:提供一致性、可定制、高性能和额外功能的实用库。官网Sugar:一个扩展了原生对象功能的 JavaScript 库。官网lazy.js:类似 Underscore,但性能更优越官网ramda:一个针对 JavaScript 程序员的实用函数库。官网mout:模块化的 JavaScript 工具库。官网mesh:流数据同步工具。官网响应式编程
响应式程序库扩展了 JavaScript 的能力。
RxJs:对 JavaScript 进行响应式扩展。官网Bacon:JavaScript 的 FPR(函数式响应式编程)库。官网Kefir:受 Bacon.js 和 RxJS 启发的 FRP 库,专注于高性能和低内存消耗。官网Highland:对 JavaScript 实用工具的重新思考,Highland 能轻易地管理同步和异步信息,而且仅使用标准 JavaScript 和类 Node 流。官网Most.js:高性能 FRP 库。官网数据结构
数据结构库用于构建一个更复杂的应用。
immutable-js:不可变的数据集合,包括 Sequence、Range、Repeat、Map、OrderedMap、Set 和 sparse Vector。官网mori:使用 ClojureScript 持久化数据结构和支持原生 JavaScript API 的库。官网buckets:完整的、经过充分测试和记录数据结构的 JavaScript 库。官网hashmap:简单的 hashmap 实现,支持任何类型的键值。官网日期
日期库。
moment:解析、验证、操作和显示日期。官网moment-timezone:基于 moment.js 的时区库。官网jquery-timeago:一款支持自动更新模糊时间戳的 jQuery 插件(如:”4 分钟之前”)。官网timezone-js:让 JavaScript Date 对象拥有时区功能。使用 Olson zoneinfo 文件记录着时区数据。官网date:拥有人性化的 Date() 方法。官网ms.js:小巧的毫秒转换工具。官网字符串
字符串库。
官网underscore.string:扩展了 Underscore.js 的字符串操作。官网string.js:额外的 JavaScript 字符串方法。官网he:健壮的 HTML 实体编码/解码器。官网multiline:多行字符串。官网query-string:解析和字符串化 URL 查询字符串。官网URI.js:URL 操作库。官网 jsurl:轻量的 URL 操作库。官网sprintf.js:实现字符串格式化。官网url-pattern:让 url 和其它字符串进行比正则表达式匹配更简单。字符串和数据可相互转化。官网数字
Numeral-js:对数字进行格式化和操作的库。官网odometer:流畅的数字过渡效果。官网accounting.js:对数字、金钱、货币进行格式化的轻量库——完全本地化和无依赖。官网money.js:一个小巧(1kb)的货币转换库,适用于 web 和 nodeJS。官网Fraction.js:一个有理数库。官网Complex.js: 一个复数库。官网Polynomial.js:一个多项式库。官网存储
store.js:为所有浏览器封装了 LocalStorage,而没有使用 cookies 和 flash。隐秘地使用 localStorage、globalStorage 和用户数据。官网localForage:改善后的离线存储。其封装了 IndexedDB、WebSQL 和 localStorage,拥有操作简单和强大的 API。官网jStorage:jStorage 是一个简单的键值对数据库,用于在浏览器端存储数据。官网cross-storage:获得权限后,能跨域名本地存储。官网basket.js:用 localStorage 加载和缓存脚本的资源加载器。官网bag.js:可以缓存脚本和加载资源,与 basket.js 相似,但增加了键值对接口和对 localStorage / websql /官网undexedDB 的支持。basil.js:智能的 JavaScript 数据持久层库。官网jquery-cookie:轻量简单的、用于读取、编辑和删除 cookie 的 jQuery 插件。官网Cookies:客户端 Cookie 操作库。官网DB.js:基于 Promise 的、封装了 IndexDB 的库。官网lawnchair.js:简单的客户端 JSON 存储。官网颜色
randomColor:JavaScript 颜色生成器。官网chroma.js:拥有各种各样颜色操作的 JavaScript 库。官网color:JavaScript 颜色转换和操作库。官网colors:更智能的默认 web 颜色。官网PleaseJS:随机创建出赏心悦目的颜色和配色方案。官网TinyColor:快速、轻巧的颜色操作和转换库。官网Vibrant.js:从图像提取主要颜色。官网国际化和本地化(I18n And L10n)
本地化和国际化 JavaScript 库
i18next:JavaScript 最简单的国际化(i18n)方法。官网polyglot:小巧的国际化助手库。官网babelfish:i18n 提供友好易懂的 API ,并且内置多种支持。官网类
ClassManager:世界上最快、最方便的类系统之一。官网klass:用于创建极富表现力的类工具库。官网augment:世界上最小且最快的一流 JavaScript 继承模式。官网控制流
async:适用于 node 和浏览器的异步工具库。官网q:实现异步的 promise JavaScript 库。官网step:让逻辑顺序合理化的异步控制流库。官网contra:利用函数风格实现的异步流控制。官网Bluebird:专注于革新功能和性能的,功能齐全的 promoise 库。官网when:快速可靠的、Promises/A+ 规范的 when() 实现,而且拥有异步其它的优秀特性。官网ObjectEventTarget:提供增加了事件监听的原型(与 DOMElement 的 EventTarget 在浏览器行为一致)。官网路由
director:一个小巧的、与 URL 同构的路由器。官网page.js:受 Express router 启发的小型客户端路由器(约为1200字节)。官网pathjs:简单、轻量的 web 路由器。官网crossroads:JavaScript 路由。官网davis.js:使用 pushState、RESTful 风格和可降级的 JavaScript 路由器。官网angular-ui-router:基于AngularJS的可嵌套路由。官网安全性
DOMPurify:针对 HTML、MathML 和 SVG 的仅支持DOM、快速、高容错的 XSS 过滤器。官网js-xss:通过白名单配置,即可过滤不信任的 HTML(防止 XSS 攻击)。官网日志
log:带有样式的 Console.log。官网Conzole:对 JavaScript 原生 console 对象方法和功能进行封装的 debug 面板,使其显示在页面内。官网console.log-wrapper:将日志清晰地记录到 console,且兼容所有浏览器。官网loglevel:最轻量的 JavaScript 日志记录工具库,向封装后可用的 console.log 方法增加可靠的日志等级。官网minilog:轻量的、用流式 API 显示的、可用于客户端和服务器端的日志记录库。官网正则表达式
RegEx101:在线的 JavaScript 正则表达式测试器和调试器。同时支持 Python、PHP 和 PCRE。官网RegExr:用于创建、测试和学习正则表达式的 HTML/JS 工具。官网RegExpBuilder:使用链式方法创建正则表达式。官网媒体
Ion.Sound:可用于任何网页上简单音频。官网语音命令
annyang:向网站添加语音命令的语音识别库。官网voix.js:向网站、app 或游戏添加语音命令的 JavaScript 库。官网API
bottleneck:强大的频率限制器,使调节流量变得更容易。官网oauth-signature-js:适用于 node 和 浏览器的 OAuth 1.0a 签名生成器。官网amygdala:为 Web 应用提供 RESTful HTTP 客户端解决方案。官网jquery.rest:一个让 RESTful API 更易使用的 jQuery 插件。官网视觉检测
tracking.js:在 web 上实现计算视觉的一种现代方法。官网ocrad.js:通过 Emscripten 用 JavaScript 实现 OCR(光学字符识别)。官网浏览器检测
bowser:一个浏览器检测器。官网UI
代码高亮
Highlight.js:JavaScript 语法高亮器。官网PrismJS:轻量、健壮和优雅的语法高亮器。官网加载状态
指示加载状态的库。
Mprogress.js:创建谷歌 Material 设计风格的线性进度条。官网NProgress:在 Ajaxy 应用显示细长型进度条官网Spin.js:一个旋转的进度指示器。官网progress.js:为页面任何对象创建和管理进度条。官网progressbar.js:用 SVG path 动画制作的、漂亮和响应式的进度条。官网pace:自动向你的网站添加一个进度条。官网topbar:小巧漂亮的、与网站同宽的进度指示器。官网nanobar:非常轻量的进度条。不依赖 jQuery。官网PageLoadingEffects:使用 SVG 动画展现新内容的现代方式。官网SpinKit:运用 CSS 动画的加载指示器集合。官网Ladda:内置在按钮的加载指示器。官网css-loaders:运用 CSS 动画的旋转加载指示器的集合。官网除了上述这些库,还有收藏在 Codepen 的,另外还有 Ajaxload,Preloaders 和 CSSLoad 这些生成器。