前端框架
1.React
React 使用虛擬 DOM 將頁面中的各個部分作為單獨的組件進行管理,因此您可以只刷新該組件而非整個頁面。React 經常配合 React-dom 與 React-router-dom 一同使用。
2.Vue
Vue 將 React 及其他框架的優點集于一身,強調以更快、更輕松、更愉悅的使用感受編寫 Web 應用程序。Vue 的說明文檔質量極高,而且經常配合 Vue-router 與 Vuex 一同使用。
3.Svelte
Svelte 是一種新的 Web 應用程序構建方法。這是一款編譯器,能夠將您的聲明性組件轉換為可以精確對 DOM 加以更新的高效 JAVAScript。
其他出色框架還包括 Angular,Ember,Backbone,Preact 等等。大家選擇哪一款都沒有問題,但請務必注意一點——先認真學習現代 JS(ES6 及更高)。
樣式框架
4.Bootstrap
全球最受歡迎的框架選項,用于構建響應式、移動優先型網站。其直觀而強大,但體積也相對較大。包括 React Bootstrap 與 Reactstrap 在內的眾多現代 UI 軟件包都以 Bootstrap 為基礎。
5.Tailwind
一種低級、實用程序優先型 css 框架,用于快速 UI 開發。憑借著從零開始的構建過程,Tailwind 可實現超級靈活的自定義空間。
6.Styled-components
CSS-in-JS 類工具,紙彌合了組件與樣式之間的鴻溝,提供一系列功能,使您能夠以功能性及可復用方式啟動并運行樣式組件。
其他重要解決方案還包括 Foundation,Bulma,Materialize 以及 Ant Design。如果您更傾向于編寫經典 CSS,也可以使用某些 CSS 擴展語言(例如 SASS)擴展其功能。
后端框架
7.Express
一種快速、廣受好評的極簡 Node.js Web 框架。其體積相對較小,具有眾多可作為插件使用的功能。很多人將其視為 Node.js 服務器框架的客觀標準。
8.Hapi
Hapi 最初用于 Express 框架。使用 Hapi,您能夠以最低開銷配合完整的即用型功能構建起強大的可擴展應用程序。
9.Sails
Sails 是目前最具人氣的 Node.js MVC 框架,可支持現代應用的一大核心需求:構建起數據驅動型 API,并輔以可擴展且面向服務的架構。
與前端框架類似,后端開發蠅的替代解決方案也不少,例如 Adonis 與 Koa。請按實際需求進行選擇,然后深入學習吧~
CORS 與請求
10.Cors
Node.js 中間件,旨在提供一款 Connect/Express 中間件配合多種選項實現跨域資源共享。
11.AxIOS
基于Promise的瀏覽器與 Node.js HTTP 客戶端,易于設置、直觀并對眾多操作加以簡化,帶來比 Fetch API 更合理的使用體驗。
12.Body-parser
主體解析中間件,用下載提取傳入請求流中完整主體部分,并將其公開在 req.body 上以供交互。
API 服務
13.Restify
一套 Node.js Web 服務框架,經過優化以構建語義正確的 RESTful Web 服務供規模化生產使用。Restify 針對自省與性能進行了優化
14.GraphQL
一種面向 API 的查詢語言,同時也是可利用現有數據完成查詢的運行時。GraphQL 在 API 中提供完整的數據描述,使客戶端能夠準確獲取其需要的信息。
Web sockets
15.Socket.io
Socket.IO 支持實時、雙向、基于事件的通信功能。它能夠運行在各類平臺、瀏覽器及設備之上,且擁有良好的可靠性與速度表現。
16.WS
易于使用、快速且經過全面測試的 WebSocket 客戶端與服務器實現。同時也是一套強大、抽象度更低且幾乎能夠與 Socket.io 相媲美的替代方案。
? 記錄器
17.Morgan
一款 HTTP 請求記錄器,能夠存儲 HTTP 請求并為用戶提供應用運作方式以及潛在錯誤的簡明見解。
18.Winston
一款幾乎支持所有傳輸方式的記錄器。其歷史比 Morgan 更長,也擁有更大的維護者社區及更廣泛的使用規模。
數據庫工具
19.Mongoose
Mongoose 是一款用于在異步環境下使用的 MongoDB 對象建模工具。Mongoose 支持回調機制。
20.Sequelize
Sequelize 是一款基于Promise的 Node.js ORM,適用于 Postgres、MySQL、MariaDB、SQLite 以及微軟 SQL Server。其具有可靠的事務支持、關鍵、急切與延遲加載、讀取副本等功能。
身份驗證工具
21.Passport
Passport 的目標在于通過一組策略(可擴展插件)對請求進行身份驗證。您向 Passport 提交一項身份驗證請求,其會提供 hook 以控制身份驗證成功或失敗時各自對應的處理方式。
22.Bcrypt
用于密碼散列處理的庫。Bcrypt 是由 Niels Provos 與 David Mazières 共同設計的一種密碼散列函數,以 Blowfish 密碼為基礎,于 1999 年首次在 USENIX 上亮相。
23.JSONWebToken
JSON Web Tokens (JWT) 是一種開放的行業標準 RFC 7519 方法,用于在兩端之間安全表達聲明。此工具包允許您對 JWT 進行解碼、驗證與生成
配置模塊
24.Config
對存儲在應用程序中的配置文件進行設置,可以通過環境變量、命令行參數或外部源進行覆蓋及擴展。
25.Dotenv
零依賴模塊,用于將環境變量從.env 文件加載至 process.env 當中。
靜態站點生成器
26.Gatsby
一款現代站點生成器,能夠創建快速、高質量的動態 React 應用,涵蓋博客、電子商務網站及用戶儀表板等使用場景。擁有良好的插件生態與模板選項。
27.NextJS
NextJS 支持服務器渲染以及靜態內容生態,您也可以在其中將無服務器函數定義為 API 端點。
28.NuxtJS
NuxtJS 在本質上屬于 Vue 生態系統中的 NextJS 替代方案。NuxtJS 的目標是令 Web 開發變得更加強大且高效,同時充分保障開發人員的使用體驗。
模板語言
29.Mustache
Mustache 是一種無邏輯模板語法,適用于 html、配置文件以及源代碼等幾乎一切場景。它通過使用哈希或對象中提供的值,在模板內擴展標簽。
30.Handlebars
使用模板及輸入對象生成 HTML 或其他文本格式。Handlebars 模板在觀感上類似于帶有內嵌 Handlebars 表達式的常規文本。Handlebars 與 Mustache 模板具有良好的兼容性。
31.EJS
EJS 是一種簡單的模板語言,允許您通過簡單語法、快速執行與簡單調試等便捷優勢生成以 JavaScript 編寫而成的 HTML 標記。EJS 擁有龐大的活躍用戶社區,且自身發展態勢也相當繁榮。
圖像處理
32.Sharp
一款出色的模塊,能夠將常見格式的大圖像轉換為尺寸較小、適合網絡瀏覽環境的 JPEG、PNG 及 WebP 圖像。
33.GM
歸功于 Node.js 模塊 GM,您可以使用 GraphicsMagick 與 ImageMagick 兩大出色工具在代碼中對圖像進行創建、編輯、合成與轉換。
34.Cloudinary
可簡化與云服務間協作的專用模塊,為 Web 應用程序的整個圖像管理管道提供解決方案。
日期格式
35.DayJS
DayJS 是一款快速且輕量化的 MomentJS(自 2020 年 9 月起進入純維護模式) 替代方案。二者擁有類似的 API,只要您接觸過 MomentJS,就能夠快速上手 DayJS。
36.Luxon
前兩者的另一種輕量級替代方案,但 API 稍有不同。
♂? 數據生成器
37.Shortid
能夠創建出簡短無序 url 友好型唯一 ID,適合作為 url 縮短器、生成數據庫 ID 及其他各類 ID。
38.Uuid
便捷的微型軟件包,能夠快速生成更為復雜的通用唯一標識符(UUID)。
39.Faker
非常實用的工具包,用于在瀏覽器及 Node.js 中生成大量假數據。
? 驗證工具
40.Validator
便捷的字符串驗證器與消毒庫。其中包含多種實用方法,例如 isEmail(),isCreditCard(),isDate() 以及 isURL()。
41.Joi
面向 JavaScript 的強大 schema 描述語言與數據驗證器。
表單與電子郵件
42.Formik
Formik 是一款流行的開源表單庫,易于使用且具備聲明性及自適應性。
43.Multer
Multer 是一款 Node.js 中間件,用于處理上傳文件中的多部分 / 表單數據。
44.Nodemailer
Nodemailer 是一款面向 Node.js 應用程序的模塊,可輕松通過電子郵件進行發送。項目誕生于 2010 年,如今已經成為大多數 Node.js 用戶的默認解決方案。
測試工具
45.Jest
Jest 是一款便捷好用的 JavaScript 測試框架,以簡單為核心訴求。您可以通過易于上手且功能豐富的 API 編寫測試,從而快速獲取結果。
46.Mocha
Mocha 是一套 JavaScript 測試框架,使異步測試變得更加簡單有趣。Mocha 以串行方式運行測試,能夠在未捕獲異常與正確測試用例加以映射的同時,發布靈活而準確的報告結果。
Web 抓取與自動化
47.Cheerio
Cheerio 被廣泛用于 Web 抓取,有時還身兼自動化任務。其基于 jQuery,運行速度極快。Cheerio 中打包有 Parse5 解析器,能夠解析任何類型的 HTML 與 XML 文檔。
48.Puppeteer
Puppeteer 被廣泛應用于瀏覽器任務自動化領域,且只能與谷歌 Chrome 無頭瀏覽器配合使用。Puppeteer 也可用于網絡抓取任務。與 Cheerio 模塊相比,其功能更加強大豐富。
Linters 與格式化工具
49.ESLint
ESLint 用于識別并報告 ECMAScript/JavaScript 代碼中的模式。ESLint 具備全面的可插入特性,每項規則對應一款插件,供您在運行時添加更多內容。
50.Prettier
Prettier 是一款風格鮮明的代碼格式化程序。它通過解析代碼并使用自己的規則(限定最大行長)對代碼進行重新輸出,借此實現統一的樣式;亦可在必要時對代碼進行打包。
模塊捆綁器與最小化工具
51.Webpack
一款著名且功能強大的模塊捆綁器,旨在捆綁 JavaScript 以供瀏覽器環境使用。它也能夠轉換、捆綁或打包幾乎一切資源或資產。
52.HTML-Minifier
輕量化、高度可配置且經過良好測試的,基于 JavaScript 的 HTML 壓縮器 / 最小化工具(支持 Node.js)。
53.Clean-CSS
適用于 Node.js 平臺以及一切現代瀏覽器的快速高效 CSS 優化器,提供極高的可配置度與多種兼容模式。
54.UglifyJS2
JavaScript 解析器、最小化工具、壓縮器及美化工具包。它可以使用多個輸入文件,并支持豐富的配置選項。
進程管理器與運行器
55.Nodemon
在 Node.js 應用開發期間使用的簡單監控腳本。易于重啟并默認啟用并監控文件變更,因此特別適合匹配開發流程使用。
56.PM2
帶有內置負載均衡器的 Node.js 應用生產流程管理器。更全面也更適合生產需求。您可以通過眾多參數進行調整 / 操作。
57.Concurrently
簡單而直接——可同時運行多條命令的實用工具。
CLI 與調試器
58.Commander
提供流暢的 API,用于定義 CLI 應用程序中的各類元素,包括命令、選項、別名及幫助等。簡化了命令行應用程序的創建過程。
59.Inquirer
一款易于嵌入且非常美觀的 Node.js 命令行界面,提供很棒的查詢會話流程。
60.Chalk
Chalk 是一款非常簡單的庫,只負責實現一項功能——對終端字符串樣式進行設置。
61.Debug
一款微型 JavaScript 調試實用程序。只需將一個函數名稱傳遞給該模塊,它就會返回一個經過修飾的 console.error 版本,以便將調試語句向其傳遞。
實用程序
62.Lodash
一套現代 JavaScript 實用程序庫,提供模塊化、性能與多種附加功能。可提供關于 JavaScript 數組、對象及其他數據結構的多種實用功能。
63.Underscore
提供多種常用的功能助手及專業工具,包括函數綁定、JavaScript 模塊化、創建快速索引、深度相等測試等。
64.Async
Async 提供直觀而強大的功能以配合異步 JavaScript。
系統模塊
65.Fs-extra
Fs-extra 包含經典 Node.js fs 包中未提供的多種方法,例如 copy(),remove(),mkdirs() 等。
66.Node-dir
用于各類常見目錄及文件操作的模塊,包括獲取文件數組、子目錄以及對文件內容進行讀取 / 處理的方法。
67.Node-cache
一個簡單的緩存模塊,具有設置、獲取及刪除等方法,工作原理類似于 memcached。各鍵將擁有對應超時(ttl),超時后其將過期并被從緩存中刪除。
其他:
68.Helmet
幫助您設置各種 HTTP 標頭以保護應用程序。它屬于 Connect 式中間件,與 Express 等框架相兼容。
69.PDFKit
DFKit 是一套面向 Node 及瀏覽器的 PDF 文檔生成庫,可輕松創建復雜的多頁可打印文檔。
70.CSV
全面的 CSV 套件,包含 4 款經過全面測試的軟件包,能夠輕松實現 CSV 數據的生成、解析、轉換與字符串化處理。
71.Marked
用于解析 markdown 代碼的低級編譯器,不會引發長時間緩存或阻塞。
72.Randomcolor
一款用于生成美觀隨機顏色的小型腳本,您可以通過選項對象調整其產生的顏色類型。
73.Pluralize
此模塊使用預定義規則表,按順序應用各項規則以生成特定單詞的單數或復數形式。適用于以用戶輸入為基礎進行自動化調整等場景。