Github 4 萬 Star!最全面的 Node.js 資源匯總推薦
點(diǎn)擊“程序員成長指北”,選擇“星標(biāo)??”
讓一部分開發(fā)者看到未來
作者@前哨君|地址@https://github.com/jobbole/awesome-nodejs-cn
由于微信不支持外鏈,可文末 “閱讀原文” 或打開 Github 地址查看更多詳細(xì)資源。
【導(dǎo)讀】:Node.js 是一個開源、跨平臺的,用于編寫服務(wù)器和命令行的 JavaScript 運(yùn)行時工具。
awesome-nodejs 是sindresorhus發(fā)起維護(hù)的 Node.js 資源列表,內(nèi)容包括:命令行工具、日志、調(diào)試、HTTP、構(gòu)建工具、文件系統(tǒng)、模板、Web 框架、流程控制、文本、圖片和數(shù)據(jù)校驗(yàn)等。
這個列表堪稱最全面的 Node.js 資源匯總,在 GitHub 已接近 4 萬 Star。
中文版由開源前哨和前端大全微信公號團(tuán)隊(duì)維護(hù)更新,歡迎在 Github 上關(guān)注。這個中文版的資源庫會定期同步更新到這里。
本項(xiàng)目的參與者
維護(hù)者:「開源前哨」和「前端大全」微信公號團(tuán)隊(duì)。「開源前哨」會定期在知乎專欄分享最新、有趣和熱門的開源項(xiàng)目,每個項(xiàng)目都有詳細(xì)的介紹和示例。傳送門:https://www.zhihu.com/column/c_1317124962785062912 貢獻(xiàn)者:cooperw991
資源列表
包 黑科技 命令行程序 函數(shù)式編程 HTTP 調(diào)試 / 分析 日志 命令行工具 構(gòu)建工具 硬件 模板 Web 框架 文檔相關(guān) 文件系統(tǒng) 流程控制 文件流 實(shí)時 圖片 文本 數(shù)字 數(shù)學(xué) 日期 URL 數(shù)據(jù)校驗(yàn) 解析 人性化 壓縮 網(wǎng)絡(luò) 數(shù)據(jù)庫 測試 安全 基準(zhǔn)化分析 代碼壓縮 認(rèn)證 授權(quán) 電子郵件 任務(wù)隊(duì)列 Node.js 管理 自然語言處理 進(jìn)程管理 自動化 AST 靜態(tài)網(wǎng)站生成 內(nèi)容管理系統(tǒng) 論壇 寫博客 怪誕的 序列化 其他
資源列表
包
黑科技
webtorrent - Node.js 和瀏覽器端洪流客戶端 peerflix - 洪流客戶端 dat - 對數(shù)據(jù)集的實(shí)時復(fù)制和版本控制 ipfs - 探索使用相同系統(tǒng)文件連接所有計算設(shè)備的分布式文件系統(tǒng) stackgl - 建立在 browserify 和 npm 之上的 WebGL 開放軟件生態(tài)系統(tǒng) peerwiki - 所有 BitTorrent 上的維基百科 peercast - Chromecast 上的視頻種子播放軟件 BitcoinJS - 簡潔,可讀性強(qiáng)的,可靠的比特幣庫 Bitcore - 純凈強(qiáng)大的比特幣庫 PDFKit - PDF 生成庫 turf - 模塊化地理空間處理和分析引擎 webcat - 使用你的 GitHub 私/公鑰利用點(diǎn)對點(diǎn)網(wǎng)頁即時通信進(jìn)行跨網(wǎng)絡(luò)鑒權(quán) NodeOS - 第一個基于 npm 的操作系統(tǒng) YodaOS - AI 操作系統(tǒng) Brain.js - 機(jī)器學(xué)習(xí)框架 Pipcook - 用于創(chuàng)建機(jī)器學(xué)習(xí)管道的前端算法框架 Cytoscape.js - 圖論(a.k.a. 網(wǎng)絡(luò))建模和分析 Kadence - KAD 算法分布式哈希表 Seedshot - 臨時點(diǎn)對點(diǎn)分享瀏覽器截屏 js-git - 用 JavaScript 實(shí)現(xiàn)的 Git skale - 高性能分布式數(shù)據(jù)處理引擎 xlsx - 純 JS 的 Excel 表格讀寫工具 isomorphic-git - 純 JavaScript 實(shí)現(xiàn)的 Git
命令行程序
np - 更好的 npm publishnpm-name - 檢查包名在 npm 上是否可用 gh-home - 打開當(dāng)前目錄下項(xiàng)目的 GitHub 主頁 npm-home - 打開一個包的 npm 主頁 trash - 比 rm更安全的選擇speed-test - 測試你的互聯(lián)網(wǎng)連接速度和 ping 值 emoj - 命令行下從文本中查找相關(guān)的 emoji pageres - 獲取網(wǎng)站的截圖 cpy - 復(fù)制文件 vtop - 有漂亮圖表的更好用的 top empty-trash - 清空文件夾 is-up - 檢測網(wǎng)站是否可以正常訪問 is-online - 檢測網(wǎng)絡(luò)連接是否正常 public-ip - 獲取你的公網(wǎng) IP 地址 clipboard-cli - 在終端里復(fù)制粘貼 XO - 使用 JavaScript happiness 風(fēng)格強(qiáng)制執(zhí)行嚴(yán)格代碼風(fēng)格 Standard - JavaScript 標(biāo)準(zhǔn)樣式 - 規(guī)范所有樣式的樣式 ESLint - JavaScript 可插式的代碼規(guī)范檢查工具 dev-time - 獲取 GitHub 用戶當(dāng)前的本地時間 David - 當(dāng) npm 軟件包中的依賴過時通知你 http-server - 簡單、零配置的命令行 HTTP 服務(wù)器 Live Server - 具有熱重啟功能的開發(fā)環(huán)境 HTTP 服務(wù)器 bcat -將命令管道輸出到 Web 瀏覽器 normit - 在您的終端中使用語音合成功能進(jìn)行 Google 翻譯 fkill - 跨平臺的進(jìn)程強(qiáng)殺命令 pjs - 用 JavaScript 實(shí)現(xiàn)的快速過濾、映射和累加器的管道命令 license-checker - 對你應(yīng)用中的依賴進(jìn)行許可證檢查 browser-run - 在瀏覽器環(huán)境中輕松運(yùn)行代碼 tmpin - 對所有允許文件輸入的 CLI 程序添加 stdin 支持 wifi-password - 獲取當(dāng)前 wifi 的密碼 wallpaper - 更換桌面壁紙 brightness - 更改屏幕亮度 torrent - 下載種子 kill-tabs - 關(guān)閉所有 Chrome 標(biāo)簽來提升性能、降低功耗以及節(jié)省內(nèi)存占用 alex - 捕捉寫作中出現(xiàn)的不當(dāng)表達(dá) pen - 用你喜愛的編輯器編寫 Markdown,在瀏覽器中提供實(shí)時預(yù)覽 subdownloader - 電影和電視劇的字幕下載器 dark-mode - 開關(guān) macOS 暗黑模式 iponmap - IP 地址查找器 Jsome - 使用自定義顏色和縮進(jìn)打印漂亮的 JSON itunes-remote - 交互式控制 iTunes mobicon - 移動端應(yīng)用圖標(biāo)生成器 mobisplash - 移動端應(yīng)用啟動頁生成器 diff2html-cli - 生成漂亮的 HTML 展示 git diff 命令的結(jié)果 Cash - 用純 JavaScript 編寫的跨平臺類 Unix Shell trymodule - 在終端中使用 npm 軟件包 jscpd - 源代碼重復(fù)代碼檢測 atmo - 模擬服務(wù)器端 API auto-install - 編寫代碼時自動安裝依賴 lessmd - 終端環(huán)境下的 Markdown 預(yù)覽器 cost-of-modules - 查找使性能降低的依賴 localtunnel - 向公網(wǎng)開放你的 localhost svg-term-cli - 基于 SVG 分享終端會話 gtop - 終端下的系統(tǒng)監(jiān)控儀表板 themer - 為您的編輯器、終端、壁紙、Slack等生成主題 carbon-now-cli - 為你的代碼生成精美的圖片 cash-cli - 170 種貨幣匯率轉(zhuǎn)換 taskbook - 命令行環(huán)境下的任務(wù)、板塊和筆記管理器 discharge - 輕松將靜態(tài)網(wǎng)站部署到 Amazon S3 npkill - 輕松查找和刪除過時且臃腫的 node_modules 文件夾
函數(shù)式編程
lodash - 更好更快的Underscore.js,提供兼容性,靈活性,高性能和其他功能的實(shí)用工具庫 immutable - 不可變數(shù)據(jù)集 Ramda - 專注于數(shù)據(jù)不變性和純粹的函數(shù)式風(fēng)格的工具集,利用將參數(shù)后置和自動柯里化實(shí)現(xiàn)靈活的函數(shù)組合。 Folktale - 一套用于 JavaScript 中的通用函數(shù)編程的庫,它允許你編寫bug更少,重用性更強(qiáng)的優(yōu)雅的、模塊化的應(yīng)用程序 Mout - 該庫與其他現(xiàn)有解決方案之間最大的區(qū)別是,您可以選擇只加載需要的模塊/函數(shù),而不需要額外開銷 Bacon.js - 函數(shù)式的響應(yīng)式編程 RxJS - 用于轉(zhuǎn)換、組合和查詢各種類型數(shù)據(jù)的函數(shù)式響應(yīng)式庫 Lazy.js - 惰性求值的類似于 lodash/Underscore 的工具庫,在許多情況下可以提供卓越的性能. Kefir.js - 專注于高性能和低內(nèi)存消耗的響應(yīng)式庫
HTTP
got - 為內(nèi)置的 http模塊提供更好的接口gh-got - 為 got和 GitHub API 交互提供更方便的封裝axios - 基于 Promise 的 HTTP 客戶端(也可以在瀏覽器中工作) wreck - HTTP 客戶端工具. download - 使下載和提取文件變得輕松 http-proxy - HTTP 代理 superagent - HTTP 請求庫 node-fetch - Node.js 的 window.fetchflashheart - REST 客戶端 http-fake-backend - 使用 JSON 文件或者 JavaScript 對象 建立一個偽裝的可自定義路由的后端服務(wù) cacheable-request - 使用符合 RFC 的緩存支持封裝原始的 HTTP 請求. gotql - 基于 got 構(gòu)建的 GraphQL 請求庫 global-agent - 可以使用環(huán)境變量配置的全局 HTTP / HTTPS 代理 smoke - 可記錄的基于文件的模擬 HTTP 服務(wù)
調(diào)試 / 分析
ndb - 增強(qiáng) Chrome DevTools 調(diào)試體驗(yàn)的工具 ironNode - 支持 ES2015 的 Node.js 開箱即用的調(diào)試器 node-inspector - 基于 Blink 開發(fā)者工具的調(diào)試器 debug - 輕量級調(diào)試工具 why-is-node-running - 當(dāng)你不知道為何 Node.js 沒有正確退出時... njsTrace - 檢測并跟蹤代碼,查看所有函數(shù)調(diào)用、參數(shù)、返回值以及在每個函數(shù)中花費(fèi)的時間 vstream - 檢查數(shù)據(jù)流并且通過管道展示 stackman - 增強(qiáng)拋出異常的錯誤棧追蹤 locus - 在運(yùn)行時啟動所有可訪問變量的REPL 0x - 一個火焰圖分析工具 ctrace - 對系統(tǒng)調(diào)用和信號的追蹤進(jìn)行格式優(yōu)化和增強(qiáng) leakage - 編寫內(nèi)存泄露測試 llnode - 一個用于 “解剖” 崩潰的 Node.js 進(jìn)程,檢視其對象的工具 thetool - 以 Chrome DevTools 友好格式為你的應(yīng)用捕獲不同的 CPU,內(nèi)存和其他資源的使用情況 swagger-stats - 追蹤 API 調(diào)用并監(jiān)視 API 表現(xiàn)、運(yùn)行狀況和使用度量 NiM - 管理 DevTools 調(diào)試工作流
日志
pino - 受 Bunyan啟發(fā)的超快速日志記錄器winston - 支持多種記錄格式的異步日志記錄庫 console-log-level - 可以想象的最簡單的記錄器,支持日志級別和自定義前綴 storyboard -端到端,分層,實(shí)時,豐富多彩的日志和描述 signale - Console 日志記錄器 consola - Console 日志記錄器
命令行工具
chalk - 美化終端字符串樣式 meow - CLI app 幫助 yargs - 自動生成優(yōu)雅用戶界面的命令行分析程序 ora - 優(yōu)雅的終端旋轉(zhuǎn)進(jìn)度條 get-stdin - 簡單的 stdin log-update - 在終端里以覆蓋前一個輸出的方式打印日志,用于制作進(jìn)度條或者動畫等 Ink - 基于 React 的命令行交互程序 listr - 終端任務(wù)列表 conf - 一個簡單的用于程序或模塊配置管理的工具 ansi-escapes - 操作終端的 ANSI 轉(zhuǎn)義代碼 log-symbols - 用不同顏色的符號記錄不同級別的日志 figures - 支援 Windows CMD 回退方案的 Unicode 符號 boxen - 在終端中創(chuàng)建方框 terminal-link - 在終端中創(chuàng)建可點(diǎn)擊的鏈接 terminal-image - 在終端里展示圖片 string-width - 獲取字符串的可視寬度 - 顯示字符串所需的列數(shù) cli-truncate - 在終端中將字符串截斷為特定寬度 first-run - 檢查是否是第一次運(yùn)行該進(jìn)程 blessed - 類似于 Curses 的庫 Inquirer.js - 交互式的命令行提示工具 yn - 將包含 yes/no 語義的字符串解析為布爾值 cli-table3 - 漂亮的 Unicode 表 drawille - 使用 Unicode 盲文字符在終端上繪圖 update-notifier - 升級 CLI 應(yīng)用程序的通知 ascii-charts - 終端下的 ASCII 柱狀圖 progress - 靈活的 ASCII 進(jìn)度條 insight - 使用 metrics 向 Google Analytics 發(fā)送匿名報告來幫助你理解你的工具是怎樣被使用的 cli-cursor - 顯示或關(guān)閉 CLI 光標(biāo) columnify - 將控制臺文本打印按列輸出,支持單元格修飾 cli-columns - 列式輸出 Unicode 和 Ansi-safe cfonts - 控制臺下的性感 ASCII 字體 multispinner - 多樣的、可同時獨(dú)立控制的 CLI 旋轉(zhuǎn)指示器 omelette - Shell 下的自動補(bǔ)全 cross-env - 跨平臺的環(huán)境變量設(shè)置 shelljs - 可移植的 Unix shell 命令 sudo-block - 禁止用戶用 root 權(quán)限使用你的程序 loud-rejection - 強(qiáng)制對未加處理的 promise rejections 錯誤給出提示 sparkly - 生成迷你圖 ▁▂▃▅▂▇Bit - 在存儲庫中創(chuàng)建、維護(hù)、查找和使用小型模塊和組件 gradient-string - 為終端輸出添加漂亮的色彩漸變 oclif - CLI框架,包括解析器、自動文檔、測試和插件 term-size - 準(zhǔn)確地獲得終端窗口大小 Cliffy - CLI 的交互式框架
構(gòu)建工具
parcel - 快速,零配置的Web應(yīng)用構(gòu)建工具 webpack - 面向?yàn)g覽器的打包工具 rollup - 新一代 ES2015 打包構(gòu)建工具 gulp - 編程式、流式快速構(gòu)建系統(tǒng) Broccoli - 快速、可靠的資源管道,支持固定時間重新編譯和緊湊的構(gòu)建定義 Brunch - 前端 web 應(yīng)用程序構(gòu)建工具,具有簡單的聲明性配置、快速的增量編譯和自定的工作流 Start - 具有可共享預(yù)設(shè)的函數(shù)式任務(wù)管理器 ygor - 一個基于 Promise 的任務(wù)執(zhí)行工具 —— 當(dāng)需要執(zhí)行的工作太多 npm run不足以完成任務(wù)時FuseBox - 首選支持 TypeScript 的結(jié)合了 webpack,JSPM 和 SystemJS 強(qiáng)大功能的快速構(gòu)建系統(tǒng) pkg - 將你的 Node.js 項(xiàng)目打包成可執(zhí)行文件
硬件
johnny-five - 基于 Firmata 的 Arduino 框架 serialport - 讀寫串口 usb - USB 庫 i2c-bus - I2C 串行總線訪問 onoff - GPIO 訪問和中斷檢測 spi-device - SPI 串行總線訪問 pigpio - 樹莓派上的快速 GPIO、PWM、伺服控制、狀態(tài)更改通知和中斷處理 gps - NMEA 解析器,用于處理 GPS 接收
模板
marko - 基于 HTML 的模板引擎,可將模板編譯為 CommonJS 模塊,并支持流、異步渲染和自定義標(biāo)簽 nunjucks - 靈感來自于 Jinja2 的具有繼承、異步控制等功能的模板引擎 handlebars.js - Mustache 模板的超集,其中添加了強(qiáng)大的功能,如 helpers 和更高級的 blocks EJS - 超級簡單的模板語言. Pug - 受Haml影響的高性能模板引擎.
Web 框架
Hapi - 用于創(chuàng)建應(yīng)用和服務(wù)的框架 Koa - 由 Express 幕后團(tuán)隊(duì)設(shè)計的框架,旨在為 Web 應(yīng)用程序和 API 提供更小、更富表現(xiàn)力和更健壯的基礎(chǔ) Express - 一個為構(gòu)建單頁、多頁以及混合 Web 應(yīng)用程序提供強(qiáng)大的功能的 Web 應(yīng)用程序框架 Feathers - 受 Express 啟發(fā)的微服務(wù)框架 LoopBack - 用于創(chuàng)建 REST API并輕松連接到后端數(shù)據(jù)源的強(qiáng)大框架 Meteor - 一個超簡單、位于程序數(shù)據(jù)庫和用戶界面之間、保持二者之間數(shù)據(jù)同步更新的純 Javascript Web 框架。(你可能會喜歡 awesome-meteor) Restify - 幫助你構(gòu)建正確的REST Web 服務(wù) ThinkJS - 支持 ES2015+ 的WebSockets REST API 框架 ActionHero - 用于為 TCP sockets,WebSocket 和 HTTP 客戶端創(chuàng)建可重用、可擴(kuò)展 API 的框架 Next.js - 極簡化的 JavaScript 服務(wù)端渲染框架 Nuxt.js - Vue.js 服務(wù)端渲染框架 seneca - 編寫微服務(wù)的工具包 AdonisJs - 基于依賴注入和 IoC 容器技術(shù)的 Node.js 的真正 MVC 框架. Hemera - 基于 NATS 編寫的可靠且容錯的微服務(wù) Micro - 使用異步實(shí)現(xiàn)的極簡微服務(wù)框架 Moleculer - 快速而強(qiáng)大的微服務(wù)框架 Fastify - 快速和低開銷的 Web 框架 Nest -受 Angular 啟發(fā)的框架,用于構(gòu)建高效且可擴(kuò)展的服務(wù)器端應(yīng)用程序 Zeronode - 用于 Node.js 微服務(wù)的最小化構(gòu)建塊 TypeGraphQL - 使用類和裝飾器的,用 TypeScript 編寫 GraphQL API 的現(xiàn)代框架 TinyHttp - 類似于 Express 的現(xiàn)代、快速的 Web 框架 Marble.js - 基于 TypeScript 和 RxJS 的,用于構(gòu)建服務(wù)端應(yīng)用的函數(shù)式編程框架
文檔相關(guān)
documentation.js - 支持 ES2015+ 和流程注釋的 API 文檔生成器 ESDoc - 面向 ES2015 的文檔生成器,附加測試代碼并評估文檔覆蓋范圍 Docco - 生成一個在代碼中混合注釋的 HTML 的文檔生成器 JSDoc - 類似于 JavaDoc 或 PHPDoc 的 API 文檔生成器 Docusaurus - 基于 React 和 Markdown 的文檔生成器,具有多語言和版本控制功能
文件系統(tǒng)
del - 使用 globs 刪除文件/文件夾 globby - 支持多種模式的 Glob 文件 cpy - 文件拷貝 rimraf - 像 rm -rf一樣的遞歸刪除make-dir - 像 mkdir -p一樣的遞歸創(chuàng)建目錄graceful-fs - 功能增強(qiáng)版的 fs模塊chokidar - 像 macOS 上使用原生 fsevents一樣監(jiān)聽fs.watch和fs.watchFile的文件系統(tǒng)監(jiān)聽器find-up - 沿父目錄向上查找文件 proper-lockfile - 進(jìn)程間和機(jī)器間 lockfile 工具 load-json-file - 讀取、解析 JSON 文件 write-json-file - 自動將 JSON 序列化寫入到文件 fs-write-stream-atomic - 類似 fs.createWriteStream()的原子操作filenamify - 將字符串轉(zhuǎn)換為有效的文件名 lnfs - 像 ln -fs一樣,強(qiáng)制創(chuàng)建符號鏈接istextorbinary - 檢查文件是文本還是二進(jìn)制 fs-jetpack - 完全重新設(shè)計的、方便日常使用的文件系統(tǒng) API fs-extra - 增加額外方法的 fs模塊pkg-dir - 查找 npm 包的根目錄 filehound - 靈活、流暢的用于文件系統(tǒng)搜索的接口 move-file - 甚至可以跨設(shè)備使用的移動文件工具 tempy - 隨機(jī)獲取臨時文件或目錄的路徑
流程控制
Promises 更多 Bluebird - 致力于創(chuàng)新功能和性能的 Promise 庫 pify - 將 callback 風(fēng)格的函數(shù)轉(zhuǎn)化為 Promise 風(fēng)格 delay - 延遲執(zhí)行 Promise promise-memoize - 擁有過期時間和預(yù)加載功能的 Promise 返回值緩存工具 valvelet - 限制 Promise 訪問頻率的工具 p-map - 可以使用 Promise 的 Map 方法 Observables zen-observable - Observables 的實(shí)現(xiàn) RxJS - 響應(yīng)式編程 observable-to-promise - 將 Observable 轉(zhuǎn)換為 Promise 更多… Streams Highland.js - 僅使用標(biāo)準(zhǔn)JavaScript 和類似 Node 的流,即可輕松管理同步和異步代碼 Callbacks each-async - 異步并發(fā)迭代器,如 forEach async - 提供簡單,強(qiáng)大的功能來處理異步問題 Channels js-csp - 為 JavaScript 提供連續(xù)的通信(例如 Clojurescript core.async 或 Go)
文件流
through2 - 基于 streams2 的輕量流轉(zhuǎn)換器,避免顯示子類噪聲 from2 - 方便使用的對 ReadableStream 的封裝,靈感來自于 through2get-stream - 以字符串或 Buffer 的形式獲取流 into-stream - 將 buffer/string/array/object 轉(zhuǎn)化為流 duplexify - 將可寫和可讀流轉(zhuǎn)換為單個stream2 雙工流 pumpify - 將一系列流合并為單個雙工流 peek-stream - 轉(zhuǎn)換流,讓你可預(yù)覽第一行再決定如何解析它 binary-split - 換行符(或任何定界符)分隔符流 byline - 超簡單的逐行流讀取器 first-chunk-stream - 轉(zhuǎn)換流中的第一個塊 pad-stream - 填充流中的每一行 multistream - 將多個流合并為一個流 stream-combiner2 - 從管道輸出流 readable-stream - Streams2 and Streams3 核心實(shí)現(xiàn)鏡像 through2-concurrent - 同時轉(zhuǎn)換對象流
實(shí)時
μWebSockets - 高可擴(kuò)展度的 WebSocket 服務(wù)器和客戶端庫 Socket.io - 實(shí)現(xiàn)基于事件的實(shí)時雙向通信 Faye - 基于 Bayeux 協(xié)議的實(shí)時客戶端-服務(wù)器消息總線 SocketCluster - 可運(yùn)行多 CPU 核心的可擴(kuò)展的 HTTP + WebSocket 引擎 Primus - 實(shí)時框架的抽象層,用于防止模塊鎖定 deepstream.io - 可擴(kuò)展的實(shí)時微服務(wù)框架 Kalm - 低層級 socket 路由和中間件框架 MQTT.js - MQTT 客戶端——構(gòu)建在 TCP/IP 協(xié)議上的基于 Pub-sub 的消息協(xié)議 rpc-websockets - 基于 WebSocket 實(shí)現(xiàn)的 JSON-RPC 2.0 Aedes - 可以在任何流服務(wù)器上運(yùn)行的 MQTT 準(zhǔn)系統(tǒng)
圖像
sharp - 超快速的用于調(diào)整 JPEG,PNG,WebP 和 TIFF 圖像大小的模塊 image-type - 檢測 Buffer / Uint8Array 的圖像類型 gm - GraphicsMagick 和 ImageMagick 的封裝 lwip - 不需要 ImageMagick 的輕量級圖像處理器 pica - 輕量級、高性能的純 JS 實(shí)現(xiàn)的圖片尺寸調(diào)整器(lanczos3), 當(dāng)不允許像素化時用 canvas drawImage()替代jimp - 純 JavaScript 中的圖像處理 probe-image-size - 無需完全下載即可獲取大多數(shù)圖像格式的大小 qrcode - 二維碼和條形碼生成器
文本
iconv-lite - 轉(zhuǎn)換字符編碼. string-length - 獲取字符串的真實(shí)長度-通過正確計算星號并忽略ansi轉(zhuǎn)義碼. camelcase - 將破折號/點(diǎn)號/下劃線/空格分隔的字符串轉(zhuǎn)換為駝峰式,案例:foo-bar→fooBar. escape-string-regexp - 轉(zhuǎn)義RegExp特殊字符. execall - 在字符串中查找多個RegExp匹配項(xiàng). splice-string - 移除或替換字符串的一部分 Array#splice.indent-string - 縮進(jìn)字符串中的每一行. strip-indent - 從字符串的每一行中除去前導(dǎo)空格. detect-indent - 檢測代碼縮進(jìn). he - HTML實(shí)體編碼器/解碼器. i18n-node - 具有動態(tài)JSON存儲的簡單翻譯模塊. babelfish - i18n,復(fù)數(shù)的語法非常簡單. matcher - 簡單通配符匹配. unhomoglyph - 規(guī)范化視覺上相似的unicode字符. i18next - 國際化框架. nanoid - 小巧、安全、URL友好、唯一的字符串ID生成器.
數(shù)字
random-int - 生成隨機(jī)整數(shù) random-float - 生成隨機(jī)浮點(diǎn)數(shù) unique-random - 生成連續(xù)唯一的隨機(jī)數(shù) round-to - 將數(shù)字四舍五入到指定的小數(shù)位數(shù): 1.234→1.2
數(shù)學(xué)
ndarray - 多維數(shù)組 mathjs - 龐大的數(shù)學(xué)公式庫 math-clamp - 三個數(shù)中取出中間值 algebra - 代數(shù) multimath - 使用 WebAssembly 和 JS 創(chuàng)建快速圖像數(shù)學(xué)的核心
日期
Luxon - 用于處理日期和時間的庫 date-fns - 現(xiàn)代日期工具 Moment.js - 分析、驗(yàn)證、操作和顯示日期 Day.js - Moment.js 之外可選的使用 Immutable 的日期庫 dateformat - 日期格式化 tz-format - 帶時區(qū)格式化時間: 2015-11-30T10:40:35+01:00cctz - 快速解析, 格式化, 和時區(qū)轉(zhuǎn)化工具
URL
normalize-url - 規(guī)范化 URL humanize-url - 可讀化 URL: http://sindresorhus.com→sindresorhus.comurl-unshort - 將短地址還原 speakingurl - 通過音譯從字符串生成子段 linkify-it - 具有完整 Unicode 支持的鏈接模式檢測器 url-pattern - 比 regex 字符串更簡單的 URLs 和其他字符串的模式匹配 embedza - 使用 oEmbed、Open Graph、meta 標(biāo)記中的信息從 url 創(chuàng)建 HTML 片段/嵌入
數(shù)據(jù)校驗(yàn)
joi - JavaScript 對象的對象模式描述語言和驗(yàn)證器 is-my-json-valid - 極速 JSON 格式校驗(yàn)工具 property-validator - 用于 Express 的屬性校驗(yàn)工具 schema-inspector - JSON API 清理和驗(yàn)證 ajv - 最快的 JSON 概要驗(yàn)證器,支持 v5、v6 和v7 方案 Superstruct - 簡單基礎(chǔ)的 JavaScript 和 TypeScript 數(shù)據(jù)驗(yàn)證器
解析
remark - 插件化的 Markdown 處理器 markdown-it - 100% 支持 CommonMark、擴(kuò)展和語法插件的 Markdown 解析器 parse5 - 快速全功能規(guī)范兼容的 HTML 解析器 strip-json-comments - JSON 去除注釋 strip-css-comments - CSS 去除注釋 parse-json - 有更多錯誤提示的 JSON 處理工具 URI.js - URL 轉(zhuǎn)化工具 PostCSS - CSS 解析、壓縮工具 JSONStream - 流式處理 JSON.parse 和 stringify csv-parser - 旨在比其他任何工具都快的流式 CSV 解析器 PEG.js - 簡單的具有出色錯誤報告功能的語法分析器生成器 x-ray - Web 爬蟲工具 nearley - 簡單,快速,強(qiáng)大的 JavaScript 解析器 binary-extract - 無需解析整個對象就可以從 JSON 緩沖區(qū)中提取一個值的工具 Stylecow - 可擴(kuò)展插件的,用于解析,操縱和轉(zhuǎn)換現(xiàn)代 CSS 的工具,使其與所有瀏覽器兼容 js-yaml - 快速的 YAML 解析器 xml2js - XML 到 JavaScript 對象的轉(zhuǎn)換器 Jison - 友好的 JavaScript 解析程序生成器. 與 Bison, Yacc 和 family 一樣的思路 google-libphonenumber - 解析、格式化、存儲和驗(yàn)證電話號碼 ref - 讀/寫緩沖區(qū)中的結(jié)構(gòu)化二進(jìn)制數(shù)據(jù) xlsx-populate - 讀/寫 Excel XLSX Chevrotain - 非常快速且功能豐富的 JavaScript 解析程序構(gòu)建工具包 fast-xml-parser - 驗(yàn)證和解析 XML
人性化
pretty-bytes - 將字節(jié)數(shù)轉(zhuǎn)換成可讀的字符串: 1337→1.34 kBpretty-ms - 將毫秒數(shù)轉(zhuǎn)化為可讀時間字符串: 1337000000→15d 11h 23m 20sms - 小巧的毫秒轉(zhuǎn)換工具 pretty-error - 簡化的錯誤信息 read-art - 從任何頁面提取可讀內(nèi)容
壓縮
yazl - 壓縮 yauzl - 解壓縮 Archiver - 流式接口的文件歸檔工具,支持 ZIP 和 TAR 格式 pako - javascript 的高速 zlib 端口(deflate, inflate, gzip) tar-stream - 流式 tar 解析器和生成器,另見tar-fs. decompress - 解壓模塊,支持 tar、tar.gz和zip文件開箱即用
網(wǎng)絡(luò)
get-port - 獲取一個空閑的端口 ipify - 獲取你的公網(wǎng) IP 地址 getmac - 獲取電腦的 MAC 地址 DHCP - DHCP 客戶端和服務(wù)器 netcat - 純 JS 實(shí)現(xiàn)的 Netcat 端口
數(shù)據(jù)庫
數(shù)據(jù)庫驅(qū)動 PostgreSQL - 使用純 JavaScript 和原生 libpq 實(shí)現(xiàn)的 PostgreSQL 客戶端 Redis - Redis 客戶端 LevelUP - LevelDB MySQL - MySQL 客戶端 couchdb-nano - CouchDB 客戶端 Aerospike - Aerospike 客戶端 Couchbase - Couchbase 客戶端 MongoDB - MongoDB 驅(qū)動 ODM / ORM Sequelize - 支持 PostgreSQL,SQLite,MySQL 以及更多數(shù)據(jù)庫的 ORM Bookshelf - Backbone.js 風(fēng)格的PostgreSQL,MySQL 和 SQLite3 的 ORM Massive - PostgreSQL 數(shù)據(jù)訪問工具 Mongoose - 優(yōu)雅的 MongoDB 對象建模 Waterline - 與數(shù)據(jù)存儲區(qū)無關(guān)的工具,可大大簡化與一個或多個數(shù)據(jù)庫的交互 OpenRecord - 類似于 ActiveRecord 的,用于 PostgreSQL,MySQL,SQLite3 和 RESTful 數(shù)據(jù)存儲的 ORM pg-promise - 基于 Promise 的使用原生 SQL 的 PostgreSQL框架 slonik - 具有嚴(yán)格類型,詳細(xì)日志記錄和斷言的 PostgreSQL 客戶端 Objection.js - 基于 SQL 查詢生成器 Knex 的輕量級 ORM TypeORM - 支持 PostgreSQL,MariaDB,MySQL,SQLite 等數(shù)據(jù)庫的 ORM MikroORM - TypeScript 的基于數(shù)據(jù)映射的 ORM,使用工作單元和身份映射模式,支持 MongoDB,PostgreSQL,MySQL 和 SQLite Prisma - TypeScript 的自動生成類型并且類型安全的查詢構(gòu)建器,可用于替代 ORM 的現(xiàn)代數(shù)據(jù)庫接入方式,支持 PostgreSQL, MySQL 和 SQLite Query builder Knex - 旨在靈活,可移植且易于使用的 PostgreSQL,MySQL 和 SQLite3 的查詢構(gòu)建器 其他 NeDB - 用 JavaScript 編寫的嵌入式持久化數(shù)據(jù)庫 Lowdb - 由 Lodash 支持的小型 JavaScript 數(shù)據(jù)庫. Keyv - 支持多后端的簡單鍵值存儲 Finale - 基于 Sequelize 模型生成 RESTful 末端 database-js - 對多種數(shù)據(jù)庫支持的具有類似 JDBC 數(shù)據(jù)庫連接的封裝 Mongo Seeding - 使用 JavaScript 和 JSON 文件填充 MongoDB 數(shù)據(jù)庫 @databases - 避免 SQL 注入風(fēng)險的純 SQL 查詢方式,支持 PostgreSQL, MySQL 和 SQLite3
測試
AVA - 面向未來的測試運(yùn)行程序 Mocha - 功能豐富的測試框架,使得異步測試簡單而又有趣 nyc - 基于 istanbul 構(gòu)建的代碼覆蓋工具,可用于子流程. tap - TAP 測試框架 tape - TAP 生產(chǎn)測試 power-assert - 通過標(biāo)準(zhǔn)的 assert 接口提供描述性斷言消息 Mochify - 基于 Browserify,Mocha,PhantomJS 和 WebDriver 的測試驅(qū)動開發(fā) trevor - 針對多個版本的 Node.js 運(yùn)行測試,而無需手動切換版本或推送至 Travis CI loadtest - 使用自動化 API 為 Web 應(yīng)用程序運(yùn)行負(fù)載測試 Sinon.JS - 測試數(shù)據(jù)模擬 navit - PhantomJS/SlimerJS 封裝,用于簡化瀏覽器測試腳本 Nock - 模擬 HTTP 請求和異常 intern - 代碼測試棧 toxy - 可追蹤的 HTTP 代理,用于模擬故障場景和網(wǎng)絡(luò)狀況 hook-std - stdout/stderr 的鉤子和修飾 testen - 使用 NVM 針對多個版本的 Node.js 運(yùn)行本地測試 Nightwatch - 基于 Selenium WebDriver 的自動化 UI 測試框架 WebdriverIO - 基于 WebDriver 協(xié)議的自動化測試 Jest - 簡單的 JavaScript 測試 TestCafe - 自動化的瀏覽器測試 abstruse - 持續(xù)集成服務(wù)器 CodeceptJS - 端到端測試 Puppeteer - 無頭 Chrome Playwright - 用單一 API 實(shí)現(xiàn) Chromium, WebKit 和 Firefox 內(nèi)核的無頭瀏覽器 nve - 在本地多個版本的Node.js上運(yùn)行任何命令 axe-core - 自動化 Web UI 測試引擎 testcontainers-node - 提供輕量級的,即用即停的常規(guī)數(shù)據(jù)庫、Web 瀏覽器或者其他任何可以運(yùn)行在 Docker 容器里的實(shí)例
安全
upash - 為所有密碼散列算法提供統(tǒng)一的 API themis - 使典型加密方案易于使用的多語言框架:靜態(tài)數(shù)據(jù)、已驗(yàn)證的數(shù)據(jù)交換、傳輸保護(hù)、身份驗(yàn)證等 GuardRails - 在請求中提供安全反饋的 GitHub 應(yīng)用程序 rate-limiter-flexible - 暴力攻擊和 DDoS 攻擊防御 crypto-hash - 異步非阻塞哈希 jose-simple - 使用 JOSE( JSON 對象簽名和加密)標(biāo)準(zhǔn)對數(shù)據(jù)進(jìn)行加密和解密
基準(zhǔn)化分析
Benchmark.js - Benchmarking 庫,支持高分辨率計數(shù)器并且返回有意的統(tǒng)計結(jié)果 matcha - 簡化的 Benchmarking 實(shí)現(xiàn)方案
代碼壓縮
babili - 基于 Babel 工具鏈的 ES2015+ 壓縮庫 UglifyJS2 - JavaScript 壓縮工具 clean-css - CSS 壓縮工具 minimize - HTML 壓縮工具 imagemin - Image 壓縮工具
認(rèn)證
Passport - 簡單, 無感的身份驗(yàn)證 Grant - 支持 Express, Koa, Hapi, Fastify, AWS Lambda, Azure, Google Cloud, Vercel以及其他庫的權(quán)限校驗(yàn)中間件
授權(quán)
CASL - UI 和 API 的同構(gòu)授權(quán) node-casbin - 支持訪問控制模型(如 ACL、RBAC 和 ABAC )的授權(quán)庫
電子郵件
Nodemailer - 處理電子郵件的最快方式 emailjs - 向任何 SMTP 服務(wù)器發(fā)送帶有附件的文本 / HTML 電子郵件 email-templates - 創(chuàng)建、預(yù)覽和發(fā)送自定義電子郵件 MJML - 旨在減少創(chuàng)建響應(yīng)式電子郵件困難的一種標(biāo)記語言
任務(wù)隊(duì)列
bull - 持續(xù)作業(yè)和消息隊(duì)列 agenda - 基于 MongoDB 的作業(yè)調(diào)度工具 idoit - 基于 Redis 的具有高級作業(yè)控制的隊(duì)列引擎 node-resque - 基于 Redis 的作業(yè)隊(duì)列 rsmq - 基于 Redis 的消息隊(duì)列 bee-queue - 高性能的基于 Redis 的任務(wù)隊(duì)列 RedisSMQ - 具有實(shí)時監(jiān)控功能的簡單高性能 edis 消息隊(duì)列 sqs-consumer - 在沒有樣板文件的情況下構(gòu)建基于 Amazon 簡單隊(duì)列服務(wù)(SQS)的應(yīng)用程序 better-queue - 不需要 Redis 的簡單高效的作業(yè)隊(duì)列
Node.js 管理
n - Node.js 版本控制 nave - Node.js 虛擬環(huán)境 nodeenv - 與 Python virtualenv 兼容的Node.js 虛擬環(huán)境 nvm for Windows - Windows node 版本控制工具 nodenv - 類似于 Ruby rbenv 的版本管理器,支持自動版本切換
自然語言處理
retext - 一個可擴(kuò)展的自然語言系統(tǒng) franc - 檢測文本語言 leven - 使用 Levenshtein 距離算法檢測兩個字符串之間的差異 natural - 自然語言設(shè)施 nlp.js - 構(gòu)建機(jī)器人,具有實(shí)體提取、情感分析、自動語言識別等功能
進(jìn)程管理
PM2 - 高級進(jìn)程管理工具 nodemon - 監(jiān)聽代碼變動并自動重新啟動服務(wù)器 node-mac - 將腳本作為 Mac 守護(hù)進(jìn)程運(yùn)行并把日志輸出到控制臺 node-linux - 將腳本作為本機(jī)系統(tǒng)服務(wù)運(yùn)行并輸出日志到 syslog node-windows - 將腳本作為 Windows 服務(wù)運(yùn)行并輸出日志到事件查看器 supervisor - 當(dāng)腳本崩潰時或者當(dāng) *.js文件更改時重新啟動腳本Phusion Passenger - 直接嵌入 Nginx 的易用的進(jìn)程管理工具
自動化
robotjs - 桌面自動化:控制鼠標(biāo)、鍵盤和閱讀屏幕 nut.js - 集成 Jest 的具有圖像匹配的跨平臺原生 GUI 自動化 / 測試框架
AST
Acorn - 輕量、快速的 JavaScript 解析器 babel-parser - 用于 babel 的 JavaScript 解析工具 cherow - 專注于性能和穩(wěn)定性的 Javascript 解析器
靜態(tài)網(wǎng)站生成
Wintersmith - 靈活、簡約、多平臺的靜態(tài)站點(diǎn)生成器 Assemble - 使用 Node.js、Grunt.js 和Yeoman 的靜態(tài)站點(diǎn)生成器 DocPad - 具有動態(tài)能力和巨大插件生態(tài)系統(tǒng)的靜態(tài)站點(diǎn)生成器 Phenomic - 基于 React 和 Webpack 生態(tài)系統(tǒng)的現(xiàn)代靜態(tài)網(wǎng)站生成器 docsify - Markdown 文站點(diǎn)生成器 Charge - 使用 JSX 和 MDX 的零配置靜態(tài)站點(diǎn)生成器
內(nèi)容管理系統(tǒng)
KeystoneJS -基于 Express 和 MongoDB 的 CMS 和 web 應(yīng)用平臺 ApostropheCMS - 基于 Express 和 MongoDB 的,強(qiáng)調(diào)直觀的前端內(nèi)容編輯和管理的內(nèi)容管理系統(tǒng) Strapi - 用于構(gòu)建強(qiáng)大 APIs 的內(nèi)容管理框架(headless-CMS) Tipe - 使用 schema 文件構(gòu)建基于 GraphQL 和 REST API 的面向開發(fā)人員的內(nèi)容管理系統(tǒng) Factor - 基于 Vue.js 的儀表盤框架和無頭 CMS AdminBro - 為你所有的資源自動生成管理員界面
論壇
nodeBB - 面向現(xiàn)代 web 的論壇平臺
寫博客
Ghost - 簡單強(qiáng)大的發(fā)布平臺 Hexo - 快速、簡單而強(qiáng)大的博客框架
怪誕的
cows - ASCII cows superb - 獲取表達(dá) “極好的” 意思的詞匯 cat-names - 獲取流行的貓名字 dog-names - 獲取流行的狗名字 superheroes - 獲取超級英雄的名字 supervillains - 獲取超級大反派的名字 cool-ascii-faces - 獲取酷炫的 ascii 顏文字 cat-ascii-faces - ??·??·???? ???? (=?ω?=)? (^?o?^)?”nerds - 獲取宅男話題的數(shù)據(jù),例如哈利波特,星戰(zhàn),寶可夢
序列化
snappy - Google Snappy 壓縮庫的綁定 protobuf - 協(xié)議緩沖區(qū) compactr - Compactr 協(xié)議
其他
execa - 比 child_process更好cheerio - 快速, 靈活, 為服務(wù)端設(shè)計的借鑒了 jQuery 設(shè)計的操作工具 Electron - 使用 Web 技術(shù)開發(fā)跨平臺桌面應(yīng)用 (You might like awesome-electron) open - 打開網(wǎng)站、文件、可執(zhí)行文件等 hasha - 使散列變得簡單,獲取緩沖區(qū)/字符串/流/文件的哈希 dot-prop - 使用 .路徑方式獲取一個套嵌對象的屬性onetime - 執(zhí)行一次性函數(shù) mem - 記憶函數(shù)——一種優(yōu)化技術(shù),通過緩存相同輸入函數(shù)的執(zhí)行結(jié)果來加速連續(xù)函數(shù)調(diào)用 import-fresh - 調(diào)用模塊時繞開緩存 strip-bom - 從字符串 / Buffer / Stream中解除 UTF-8 BOM 問題 os-locale - 獲取系統(tǒng) locale ssh2 - SSH2 客戶端和服務(wù)端模塊 adit - SSH 相關(guān)工具 import-lazy - 懶加載一個模塊 file-type - 獲得一個 Buffer 的文件類型 Bottleneck - 速率限制器,使流量控制變得容易 ow - 函數(shù)參數(shù)驗(yàn)證 webworker-threads - 使用原生線程的輕量級 Web Worker API clipboardy - 訪問系統(tǒng)的剪貼板 (復(fù)制和粘貼) node-pre-gyp - 使從二進(jìn)制發(fā)布安裝 Node.js C++ 插件更簡單的工具 opencv - Javascript 的 OpenCV 封裝,計算機(jī)圖形處理庫 dotenv - 從 .env 文件加載環(huán)境變量. remote-git-tags - 從 git 遠(yuǎn)程倉庫獲取 tags semver - 語義版本分析器 Faker.js - 測試數(shù)據(jù)批量生成工具 (推薦閱讀:《2.8 萬 Star!生成虛假內(nèi)容的神器:faker.js》) nodegit - 原生 Node 封裝的 Git 工具 json-strictify - 安全地將值序列化為 JSON ,不丟失數(shù)據(jù)或進(jìn)入無限循環(huán) resolve-from - 從一個給定的路徑執(zhí)行某個模塊的 resolve 方法 simplecrawler - 事件驅(qū)動的 web 爬蟲程序 jsdom - HTML 和 DOM 的 JavaScript 實(shí)現(xiàn) hypernova - 服務(wù)端渲染 JavascSript 視圖 @sindresorhus/is - 檢查值和類型是否匹配 env-dot-prop - 使用 .路徑獲取、設(shè)置或刪除 process.env 的嵌套屬性emittery - 簡單而現(xiàn)代的異步事件發(fā)生器 node-video-lib - 純 JavaScript 編寫的,用于處理 MP4 和 FLV 視頻文件并為 HLS 流創(chuàng)建 MPEG-TS 塊的視頻工具庫 basic-ftp - FTP/FTPS 客戶端 cashify - 匯率轉(zhuǎn)換 genepi - 自動從 C++ 代碼中生成 Node.js addon husky - 創(chuàng)建 Git 鉤子腳本 patch-package - 對 npm 依賴進(jìn)行修復(fù)和保持 editly - 聲明式視頻編輯 API
1.看到這里了就點(diǎn)個在看支持下吧,你的「點(diǎn)贊,在看」是我創(chuàng)作的動力。
2.關(guān)注公眾號
程序員成長指北,回復(fù)「1」加入高級前端交流群!「在這里有好多 前端 開發(fā)者,會討論 前端 Node 知識,互相學(xué)習(xí)」!3.也可添加微信【ikoala520】,一起成長。
“在看轉(zhuǎn)發(fā)”是最大的支持
評論
圖片
表情
