本文收集了 Node.js 中常用的工具绘趋、依賴包和插件等陷遮,涵蓋了 應(yīng)用、后端框架绽族、前端框架吧慢、UI 組件怖喻、工具庫锚沸、功能插件和解決方案等哗蜈。
Git上一個較為全面的匯總:awesome-nodejs
目錄
- Dependency Management 依賴管理
- Application 應(yīng)用
- Framework 框架
- Build 打包編譯
- Template Engine 模板引擎
- CSS Preprocessor CSS預(yù)處理器
- Responsive UI Framework 響應(yīng)式 UI 框架
- Editor 編輯器
- Chart 圖表
- Syntax Highlighter 語法高亮
- Database 數(shù)據(jù)庫
- Status & Storge 狀態(tài)和存儲
- Security 安全
- Task 任務(wù)
- Test 測試
Dependency Management 依賴管理
- NPM Node.js 自帶的包管理工具,國內(nèi)訪問可能會較慢音比,甚至出錯洞翩,時好時壞骚亿!
- CNPM 正是因?yàn)?NPM 經(jīng)常抽筋来屠,所以國內(nèi)才有了 CNPM,這是一個完整 npmjs.org 鏡像传趾,可代替官方版本星虹,同步頻率目前為 10分鐘宽涌,訪問速度快卸亮,命令行輸出也比較友好。
- Yarn 是 Facebook 推出的溶诞,一個可能取代 npm 的新型包管理器螺垢,據(jù)說速度很快,國內(nèi)用戶也可以為其設(shè)置淘寶鏡像孽亲!??
Application 應(yīng)用
本部收錄了一些使用 Node.js 相關(guān)的技術(shù)實(shí)現(xiàn)的具體產(chǎn)品展父,這些產(chǎn)品中有些已經(jīng)用于實(shí)際生產(chǎn)返劲,有些僅僅是學(xué)習(xí)之用。
- Node club 是使用 Node.js 和 MongoDB 開發(fā)的社區(qū)系統(tǒng) http://cnodejs.org/
- KeystoneJS 是一個基于 Express 與 Mongoose 的 Node.js CMS 內(nèi)容管理平臺和Web應(yīng)用平臺栖茉。使用它可以方便快速建立基于數(shù)據(jù)庫驅(qū)動的網(wǎng)站應(yīng)用旭等,還提供了安全認(rèn)證和會話管理、動態(tài)路由衡载、能夠?qū)γ艽a自動加密搔耕、表單校驗(yàn)處理、自動產(chǎn)生管理界面、Email郵件發(fā)送等。
- Apostrophe 一個 CMS 框架箱舞,支持上下文編輯和靈活的插件肺魁。
- Firekylin 基于 ThinkJS 2.0 & ReactJS & ES2015+ 開發(fā)的一個簡約高效的博客系統(tǒng)瘾晃。
- StrongLoop 是一個基于 Node.js 開發(fā)的 API 服務(wù),它最著名的一款實(shí)時性能監(jiān)測產(chǎn)品叫 StrongOps,通常也叫做Nodefly。StrongLoop套件包含了LookBack、StrongOps、StrongNode這三個產(chǎn)品。
- Hexo - 高效、簡潔、強(qiáng)悍的博客座菠。
- ghost - 簡潔也榄、功能強(qiáng)大的發(fā)布平臺囚霸。
Framework 框架
本部可分為后端框架、前端框架东帅、工具庫 三個部分愧膀。
后端框架
- Express 快速蟀悦、開放涎拉、極簡的 web 開發(fā)框架。
- Koa koa 是由 Express 原班人馬打造的,致力于成為一個更小、更富有表現(xiàn)力、更健壯的 Web 框架。
- egg 阿里開源的企業(yè)級 Node.js 框架脸爱,號稱為企業(yè)級框架和應(yīng)用而生。
- ThinkJS 一款可以使用 ES6/7 特性開發(fā)項(xiàng)目的 Node.js 框架导梆,使用 async/await 或者 */yield 徹底解決異步回調(diào)的問題躏结,同時支持 TypeScript塞关。
- Derby 是一個MVC框架椰于,幫助編寫實(shí)時孩饼,交互的應(yīng)用。可以運(yùn)行在Node.js或者瀏覽器環(huán)境中瓤鼻。還擁有一個數(shù)據(jù)同步引擎Racer耐朴。
- Sails.js 可以很容易地開發(fā)定制的檩禾,企業(yè)級的和現(xiàn)代的 Node.js 應(yīng)用程序,也適合于開發(fā)圖表锋喜、儀表盤和游戲。
- Total.js 另一個偉大的 Node.js 框架虑灰,幫助創(chuàng)建網(wǎng)頁和網(wǎng)絡(luò)應(yīng)用程序,還支持 MVC 架構(gòu)脂男。這是一個開源的現(xiàn)代框架,使用 HTML眶明,JavaScript 和 CSS 建設(shè)網(wǎng)站稽屏。
- Locomotive 支持 MVC 模式庵楷,REST 風(fēng)格的路由也是基于 Express 構(gòu)建的。
- Socketstream 具有快速和模塊化的特性能庆,致力于打造實(shí)時的單頁面應(yīng)用程序船逮。
- Geddy 是一款簡單,結(jié)構(gòu)化和原始的 Node.js MVC 開發(fā)框架饵沧,用于構(gòu)建高級 WEB 應(yīng)用程序咏瑟,它還擁有一個 RESTful 的路由宋舷、模板渲染、控制器和模型誓篱。
- Grasshopper 一款功能豐富且非常靈活的Node.js框架,基本上支持所有的Web開發(fā)特性氛驮。GitHub
-
Chocolate.js 是一個實(shí)驗(yàn)性的全棧 Node.js 框架,基于它可以使用 CoffeeScript
語言建立 WEB App拆宛。 - CompoundJS 是一個 Node.js 的 MVC 框架贡这,開發(fā)者使用它在幾分鐘內(nèi)即可構(gòu)建一款 Web 應(yīng)用湃望。
- partial.js
- flatiron
- Express-IO
- Datachannel.io
- Chair 支付寶前端團(tuán)隊(duì)推出的官硝,基于Node.js的Web框架缎玫,適用于大部分的Web應(yīng)用值骇。
前端框架
-
NervJS 京東凹凸實(shí)驗(yàn)室開發(fā)的一款兼容 IE8 的輕量級前端框架拘鞋,推薦
typescript
語法; - Vue.js 國人開發(fā)漸進(jìn)式 JavaScript 框架案训,小巧而靈活的同時保留其他框架的優(yōu)勢脱柱,是目前最受歡迎的框架;
- AngularJS 誕生于2009年矩乐,核心功能:MVC、模塊化岳遥、自動化雙向數(shù)據(jù)綁定绅络、語義化標(biāo)簽拌蜘、依賴注入等等铜涉。
- React 起源于 Facebook 的內(nèi)部項(xiàng)目隧熙,其性能出眾肝谭,代碼邏輯簡單芋齿,越來越多的人開始關(guān)注和使用级历,并認(rèn)為它可能是將來 Web 開發(fā)的主流工具。
- Primus Transformer 的創(chuàng)造者吭服,并且也被稱為通用包裝器實(shí)時框架;Primus 里包含了大量的用于 Node.js 的實(shí)時框架,并且它們都擁有各種不同的實(shí)時功能。此外菠发,Primus 還提供了通用的低級別接口用于各個實(shí)時框架之間進(jìn)行通信楔敌。
- DozerJS 一款旨在開發(fā)可擴(kuò)展的 RESTful 風(fēng)格的 API 和 Web 服務(wù)來支持前端開發(fā)杨何。
- KnockoutJS 是一個輕量級的UI類庫延届,通過應(yīng)用MVVM模式使JavaScript前端UI簡單化。比如列表數(shù)據(jù)項(xiàng)增減后定踱,不需要重新刷新整個控件片段或自己寫JS增刪節(jié)點(diǎn),只要預(yù)先定義模板和符合其語法定義的屬性即可。
工具庫
- core-js js 騷操作庫;
- lodash 一個具有一致接口株憾、模塊化、高性能等特性的 JavaScript 工具庫俱饿。
- Dojo Toolkit 是一款功能非常強(qiáng)大的 JavaScript 類庫,可以實(shí)現(xiàn)任何功能。
Build 打包編譯
本部收錄一些可以將 HTML 編譯為 Desktop app 或 Mobile app 的工具。
- Cordova ??其主要用于構(gòu)建移動應(yīng)用薯定。Cordova 提供了一組設(shè)備相關(guān)的API,通過這組API童擎,移動應(yīng)用能夠以JavaScript訪問原生的設(shè)備功能芯砸,如攝像頭曹质、麥克風(fēng)等。Cordova還提供了一組統(tǒng)一的JavaScript類庫地粪,以及為這些類庫所用的設(shè)備相關(guān)的原生后臺代碼。支持主流的移動擦操作系統(tǒng)笑跛。
- Electron ?? 提供了豐富的本地(操作系統(tǒng))的API,使你能夠使用純 JavaScript 來創(chuàng)建桌面應(yīng)用程序聊品。與其它各種的 Node.js 運(yùn)行時不同的是 Electron 專注于桌面應(yīng)用程序而不是Web服務(wù)器飞蹂。
- PhoneGap ??允許你利用現(xiàn)有的 Web 開發(fā)技術(shù)快速開發(fā)混合手機(jī)應(yīng)用程序,如翻屈,HTML陈哑、CSS 和 JavaScript。
- Appcelerator ?? ??是一個開源的應(yīng)用開發(fā)平臺伸眶,它允許你使用像 HTML惊窖,JavaScript 和 CSS 這樣的web技術(shù)來創(chuàng)建原生應(yīng)用(移動應(yīng)用和桌面應(yīng)用)。
- React Native ??結(jié)合了 Web 應(yīng)用和 Native 應(yīng)用的優(yōu)勢厘贼,可以使用 JavaScript 來開發(fā) iOS 和 Android 原生應(yīng)用界酒。在 JavaScript 中用 React 抽象操作系統(tǒng)原生的 UI 組件,代替 DOM 元素來渲染等嘴秸。
- Xamarin ??始創(chuàng)于2011年毁欣,旨在使移動開發(fā)變得難以置信地迅捷和簡單庇谆。Xamarin的產(chǎn)品簡化了針對多種平臺的應(yīng)用開發(fā),包括iOS和 Android凭疮。Xamarin由許多著名的開源社區(qū)開發(fā)者創(chuàng)立和參與饭耳,而且也是Mono項(xiàng)目的主導(dǎo)者——C#與.NET框架的開源、跨平臺實(shí)現(xiàn)执解。
- Meteor??是另一個開發(fā)交互式移動應(yīng)用的 JavaScript 框架寞肖。Meteor 不僅能讓你用 JavaScript 開發(fā)移動應(yīng)用,還能讓持續(xù)控制應(yīng)用衰腌。在這個特性下新蟆,你可以更新 JavaScript 代碼,并通過實(shí)時代碼推送功能將其立即發(fā)布給所有移動平臺的用戶桶唐,而這一切都可以不需要開發(fā)者支持栅葡。
- NativeScript ?? ??是 Telerik 發(fā)明的從單一的源代碼構(gòu)建多平臺的本地移動應(yīng)用程序工具集。NativeScript 網(wǎng)站和 GitHub 頁面描述運(yùn)行時使開發(fā)人員能夠利用 JavaScript 和 TypeScript(甚至Angular 2.0)來為安卓尤泽、iOS欣簇、構(gòu)建本地應(yīng)用程序,并提供代碼平臺坯约。
- Ratchet ??是頂級 JavaScript 框架的另一個主要元素熊咽,用來開發(fā)移動應(yīng)用程序。它旨在為開發(fā)人員和設(shè)計人員提供了一個框架來構(gòu)建移動 web 應(yīng)用程序闹丐。該框架是由為我們帶來 Bootstrap 的同一個團(tuán)隊(duì)創(chuàng)造横殴,以確保 Ratchet 高質(zhì)量。不管你想要的目標(biāo)是 Android卿拴,iOS衫仑,或兩者兼而有之,Ratchet 2.x 都能幫你實(shí)現(xiàn)
- AppMeme ??
Template Engine 模板引擎
- jade 一個高性能的模板引擎,它深受 Haml 影響,它是用 JavaScript 實(shí)現(xiàn)的,并且可以供 Node 使用堕花。
- ejs 用來從 JSON 數(shù)據(jù)中生成 HTML 字符串文狱。
- doT 特點(diǎn)是快、小缘挽,無依賴其他插件瞄崇。GitHub
- swig 一個優(yōu)秀簡潔的模板引擎,類似 Python 模板引擎 Jinja, 目前不僅在 node 端較為通用, 在瀏覽器端也可以很好地運(yùn)行。GitHub
- dust.js 一個 JS 異步模板引擎壕曼,可用于瀏覽器和 Node.js 環(huán)境苏研,同時支持客戶端和服務(wù)端渲染,模版編譯成JS后使用腮郊,性能好摹蘑。
- Handlebars.js 語義模板庫,通過對 view 和 data 的分離來快速構(gòu)建 Web 模板轧飞。
CSS Preprocessor CSS預(yù)處理器
關(guān)于 CSS 預(yù)處理器的解釋:http://www.w3cplus.com/css/css-preprocessor-sass-vs-less-stylus-2.html
- less 現(xiàn)在最為流行的CSS預(yù)處理器之一纹蝴,Sass強(qiáng)有力的競爭者庄萎。
- sass 已經(jīng)有 8 年的開源歷史項(xiàng)目,可以說他定義了現(xiàn)代 CSS 預(yù)處理器也不為過塘安。
- stylus 是功能豐富的 CSS 擴(kuò)展糠涛,有 60 多種自定義函數(shù),包括saturation()兼犯,可以推算適配 CSS 飽和顏色忍捡。
- Turbine 如果你是一個 PHP 愛好者,那么 Turbine 非常適合你切黔,很簡單的語法砸脊、自動 gzip 多個 css 文件,修復(fù)了跨瀏覽器的問題等等纬霞。
- CSS-Crush
- Myth
- rework
- CSS Cacheer 可讓開發(fā)人員創(chuàng)建 CSS 插件凌埂,要求 PHP 和 apache 的 mod_deflate 和 mod_rewrite 模塊。
- DtCSS 是一個 PHP 腳本诗芜,用來對 CSS 文件進(jìn)行預(yù)處理瞳抓。DtCSS 可通過擴(kuò)展 CSS 的特性來加速 CSS 編碼。例如嵌套選擇器伏恐、顏色混合等等孩哑。DtCSS 讀取 CSS 文件并對特殊語法進(jìn)行處理,然后輸出標(biāo)準(zhǔn) CSS翠桦。DtCSS 包含一個智能的緩存系統(tǒng)横蜒。
- CSS PP 提供 PHP、Python 和 Ruby 的版本
Responsive UI Framework 響應(yīng)式 UI 框架
- AT UI 京東凹凸實(shí)驗(yàn)室開發(fā)的一款輕量級销凑、模塊化的前端 UI 組件庫丛晌;
- bootstrap 簡潔、直觀斗幼、強(qiáng)悍的前端開發(fā)框架茵乱,讓 WEB 開發(fā)更迅速、簡單孟岛;
- bootstrap Vue 基于 Vue.js 2 的 Bootstrap 4組件;
- Flat UI 基于 bootstrap 3.2 美化的免費(fèi) WEB 界面工具組件庫督勺;
- Material UI 實(shí)現(xiàn) Material Design 的響應(yīng)式組件系統(tǒng)渠羞;
- UIKit 一款輕量級、模塊化的前端框架智哀,用于開發(fā)快速且強(qiáng)大的 Web 界面次询;
- Amaze UI 是一個輕量級、 Mobile first 的前端框架, 基于開源社區(qū)流行前端框架編寫的瓷叫;
- Muse 基于 Vue 2.0 和 Material Design 的 UI 組件庫
- Semantic UI 完全語義化的前端界面開發(fā)框架
- Element 網(wǎng)站快速成型工具
- iView 一套基于 Vue.js 的高質(zhì)量 UI 組件庫
- ZUI 一個基于 Bootstrap 深度定制開源前端實(shí)踐方案屯吊,幫助你快速構(gòu)建現(xiàn)代跨屏應(yīng)用送巡。
- Pure CSS 一組小的、響應(yīng)式CSS模塊盒卸,可用于任意Web項(xiàng)目中骗爆。
- Gumby Framework 允許用戶自主快速的開發(fā)擴(kuò)展 Gumby,同時提供很多新的工具來自定義和擴(kuò)展 Gumby 框架
- Foundation 一個易用蔽介、強(qiáng)大而且靈活的框架摘投,用于構(gòu)建基于任何設(shè)備上的Web應(yīng)用。提供多種Web上的UI 組件虹蓄,如表單犀呼、按鈕、 標(biāo)簽等薇组。
- Kube 足夠的簡單外臂,足夠小,具有很強(qiáng)的自適應(yīng)能力律胀,是個響應(yīng)式的 CSS 框架
- H-ui 輕量級前端框架宋光,簡單免費(fèi),兼容性好累铅。
- Layui 一款采用自身模塊規(guī)范編寫的國產(chǎn)前端 UI 框架跃须,遵循原生HTML/CSS/JS的書寫與組織形式,組件豐盈娃兽,非常適合界面的快速開發(fā)菇民。
- SUI 是一套基于bootstrap開發(fā)的前端組件庫,同時她也是一套設(shè)計規(guī)范投储。
- MZUI ?? 為移動端設(shè)計第练,基于 Flex 的 UI 框架。
- WeUI ?? 是一套同微信原生視覺體驗(yàn)一致的基礎(chǔ)樣式庫玛荞,由微信官方設(shè)計團(tuán)隊(duì)為微信內(nèi)網(wǎng)頁和微信小程序量身設(shè)計娇掏,令用戶的使用感知更加統(tǒng)一。
- VUX ?? 是基于 WeUI 和 Vue(2.x) 開發(fā)的移動端 UI 組件庫勋眯,主要服務(wù)于微信頁面婴梧。
- FrozeUI ??一個開源的簡單易用,輕量快捷的移動端UI框架客蹋∪洌基于手 Q 樣式規(guī)范,選取最常用的組件讶坯,做成手 Q 公用離線包減少請求番电,升級方式友好,文檔完善,目前全面應(yīng)用在騰訊手Q增值業(yè)務(wù)中漱办。
- YDUI Touch?? 專為移動端打造这刷,在技術(shù)實(shí)現(xiàn)、交互設(shè)計上兼容主流移動設(shè)備娩井,保證代碼輕暇屋、性能高;使用 Flex 技術(shù),靈活自如地對齊撞牢、收縮率碾、擴(kuò)展元素,輕松搞定移動頁面布局;實(shí)現(xiàn)強(qiáng)大的屏幕適配布局屋彪,等比例適配所有屏幕所宰。
- AlloyUI 是基于YUI 3的前段UI框架贮缅,包含一套豐富的(超過60)UI 部件医增,如圖片庫恕齐,對話框慈省,樹形結(jié)構(gòu)析砸,面板代虾,自動完成栈戳,按鈕安聘,日歷控件华糖,工具條等麦向。
- 拼圖 優(yōu)秀的國產(chǎn)響應(yīng)式css開源框架,自動適應(yīng)手機(jī)客叉,平板诵竭,電腦
- EasyUI 幫助你快速構(gòu)建 WEB 應(yīng)用的前端框架
- J-UI 國產(chǎn)的 jQuery UI 富客戶端框架
- LingerUI 國產(chǎn)前端框架
- BUI
- kissy An Enjoyable UI Library
Editor 編輯器
- markdown 一個 markdown 解析包。NPM
- simditor Simditor 是團(tuán)隊(duì)協(xié)作工具 Tower 使用的富文本編輯器兼搏。功能精簡卵慰,加載快速。GitHub
- editor.md 一個基于jQuery和CodeMirror構(gòu)建的在線Markdown文檔編輯器佛呻,支持實(shí)時預(yù)覽和多語言語法高亮裳朋,兼容主流的瀏覽器(IE8+),且支持iPad等平板設(shè)備吓著,支持流程圖 flowchart 和時序圖 sequenceDiagram鲤嫡。GitHub
- CFEditor 這是 classfoo 全站所使用的所見即所得富編輯器,其使用 BootStrap 3.x 樣式绑莺,最低支持 IE 8暖眼。
- CKEditor 新一代的 FCKeditor,是一個重新開發(fā)的版本紊撕。
- ueditor 百度研發(fā),功能強(qiáng)大赡突,兼容性強(qiáng)对扶,配置項(xiàng)豐富区赵,界面美觀。
- kindeditor 老牌可視化編輯器浪南,體積相對較小笼才,個性化簡單,兼容IE络凿、Firefox骡送、Chrome、Safari絮记、Opera等主流瀏覽器摔踱。
- tinymce 靈活的配置。
- Summernote 是一款輕量的 Bootstrap 編輯器怨愤,壓縮后實(shí)際大小為 58KB派敷,最低支持為 IE 9。
- wangEditor
- bootstrap-wysiwyg
Chart 圖表
Syntax Highlighter 語法高亮
- highlight.js 目前最流行的語法高亮插件 GitHub
- syntaxhighlighter GitHub
- highlight GitHub
- highlighter NPM
Database 數(shù)據(jù)庫
該部收錄的均為 NPM 提供的數(shù)據(jù)庫操作模塊差导。
- mysql NPM
- mongoose NPM
- sqlite NPM试躏,一款輕型的數(shù)據(jù)庫,是遵守 ACID 的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)设褐,它包含在一個相對小的C庫中颠蕴。
- redis NPM,一個開源的使用ANSI C語言編寫络断、支持網(wǎng)絡(luò)裁替、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫貌笨,并提供多種語言的API弱判。
- Lowdb NPM,一個基于 loadsh API 的小型本地數(shù)據(jù)庫锥惋。
Status & Storge 狀態(tài)和存儲
- storge-js NPM
- cookie NPM
- session NPM
- cookie-parser NPM
-
cookie-session 會序列化整個的會話信息到 cookie 中昌腰,對于瀏覽器一般會有 cookie
的大小限制,所以使用它的時候要注意不要存儲的數(shù)據(jù)太大膀跌,超過了限制遭商。 - express-session 會將數(shù)據(jù)保存在服務(wù)器端,而且僅僅會在 cookie 中保存會話的 id捅伤,默認(rèn)使用內(nèi)存保存劫流。
- koa-session NPM
Security 安全
- Helmet 可以幫助你的app抵御一些比較常見的 WEB 安全隱患,它其實(shí)是將多個安全中間件集中到了一起,大部分都是對于 HTTP Header 的操作祠汇。
Task 任務(wù)
Test 測試
- Mocha 誕生于 2011 年仍秤,是現(xiàn)在最流行的 JavaScript 測試框架之一,在瀏覽器和 Node 環(huán)境都可以使用可很。
- tape 是 substack 寫的測試框架诗力,核心價值觀是”Tests are code”,所以你可以像代碼一樣跑測試我抠。
- Jasmine 不依賴于任何框架苇本,所以適用于所有的Javascript代碼。
- Qunit
- istanbul 用于生成測試覆蓋率報告菜拓。
NPM 中有意思的包
- moment 強(qiáng)大的日期處理庫瓣窄;
- waveform-data 讀取音頻文件,生成波形圖尘惧;
- lunar-calendar 傳入日期康栈,即可獲取較為詳細(xì)的農(nóng)歷數(shù)據(jù),其中還包含了節(jié)日和節(jié)氣數(shù)據(jù)喷橙,很方便啥么;
- qrcode.vue 比較好用的二維碼 Vue 組件;
- vue-waterfall 比較好用的瀑布流 Vue 組件贰逾;
- hot-key 瀏覽器快捷鍵監(jiān)聽悬荣;
- nodemon Node.js 的熱重載調(diào)試輔助;
那些看上去短小精悍的代碼疙剑,可能危機(jī)重重 —— 注重代碼排版是一種修養(yǎng)氯迂!
以上內(nèi)容為本人匯總備查,大部分資源翻譯參考或來自網(wǎng)絡(luò)言缤,感謝原作者嚼蚀!整理時間有限,手頭項(xiàng)目也沒有完全覆蓋管挟,有增補(bǔ)內(nèi)容可以留言給我轿曙,3Q。