原文作者:Madza
譯者:Gopal
如今,在我們繁忙的日程和緊迫的截止日期中州叠,選擇能夠提高工作效率的工具至關(guān)重要。
在這里刃跛,我整理了一些我最喜歡的 NPM
軟件包的列表骚腥。 我也將它們分類截珍,因此信息更加結(jié)構(gòu)化凛捏,更易于瀏覽坎拐。
當(dāng)然烦磁,你不必安裝和學(xué)習(xí)所有這些工具。在大多數(shù)情況下哼勇,從每個(gè)類別中挑選一個(gè)就足夠了都伪。我想提供一些替代方案,以便每個(gè)讀者都能找到一些東西猴蹂。來(lái)一起享受吧院溺!
?? 前端框架
1.React
React
使用虛擬 DOM
將頁(yè)面的各個(gè)部分作為單獨(dú)的組件進(jìn)行管理楣嘁,從而允許你刷新組件而不刷新整個(gè)頁(yè)面磅轻。 通常與 React-dom 和 React-router-dom 一起使用。
2.Vue
Vue
是通過(guò)結(jié)合 React
和其他庫(kù)的最佳方法而構(gòu)建出來(lái)的逐虚,專注于編寫更快聋溜,更輕松,更愉快 Web
應(yīng)用程序叭爱, 它擁有出色的文檔撮躁。 通常與 Vue-router 和 Vuex 一起使用。
3.Svelte
Svelte
是構(gòu)建 web 應(yīng)用程序的一種新方法买雾。它是一個(gè)編譯器把曼,它接受聲明性組件并將它們轉(zhuǎn)換為高效的 JavaScript
,從而像動(dòng)手術(shù)一樣更新 DOM
漓穿。
其他值得注意的框架包括 Angular, Ember, Backbone, Preact 等嗤军。 你可以對(duì)其中任何一個(gè)進(jìn)行神奇的操作,黃金法則是早點(diǎn)學(xué)習(xí) 現(xiàn)代JS(ES6及更高版本)晃危。
??樣式框架
4.Bootstrap
全球最受歡迎的框架叙赚,用于構(gòu)建響應(yīng)式老客,移動(dòng)端開發(fā)優(yōu)先的網(wǎng)站。 直觀而強(qiáng)大震叮,但體積相對(duì)較大胧砰。 許多現(xiàn)代的 UI 工具包都基于它,例如 React Bootstrap 或 Reactstrap苇瓣。
5.Tailwind
一種低級(jí)別的尉间,實(shí)用程序優(yōu)先的 CSS 框架,用于快速 UI 開發(fā)钓简。從基礎(chǔ)上開始建立乌妒,并且能夠?qū)崿F(xiàn)超級(jí)可定制。
6.Styled-components
在組件和樣式之間架起橋梁的 CSS-in-JS
工具外邓,提供了大量的特性撤蚊,讓你以一種功能性和可重用的方式啟動(dòng)和運(yùn)行樣式組件。
其他出色的解決方案包括 Foundation, Bulma, Materialize and Ant Design.如果你喜歡編寫普通的 CSS损话,則可以使用一些 CSS
擴(kuò)展語(yǔ)言侦啸,例如 SASS 來(lái)擴(kuò)展其功能。
?? 后端框架
7.Express
為 Node.js
提供了快速丧枪、無(wú)約束光涂、極簡(jiǎn)的 web
框架。它是相對(duì)較小的拧烦,并有較多可用的插件特性忘闻。通常被稱為 Node.js
的標(biāo)準(zhǔn)服務(wù)器框架。
8.Hapi
Hapi
最初用于 Express
框架恋博。使用 Hapi
齐佳,你可以以最小的開銷和完全開箱即用的功能構(gòu)建功能強(qiáng)大、拓展性強(qiáng)的應(yīng)用程序债沮。
9.Sails
Sails
是最流行的 Node.js MVC
框架炼吴,支持現(xiàn)代應(yīng)用程序的需求:具有可擴(kuò)展的,面向服務(wù)的體系結(jié)構(gòu)的數(shù)據(jù)驅(qū)動(dòng)API
疫衩。
與前端框架相同硅蹦,還有很多后端替代方案,例如 Adonis 和 Koa闷煤。選擇一個(gè)適合你的需求并充分學(xué)習(xí)它童芹。
?? CORS 和請(qǐng)求
10.Cors
Node.js
中間件,提供了各種選項(xiàng)鲤拿,用于實(shí)現(xiàn)跨域資源共享的 Connect / Express
中間件假褪。
11.Axios
基于 Promise
的 HTTP
客戶端,用于瀏覽器和 Node.js
皆愉。 與 JS
內(nèi)置Fetch API 相比嗜价,它易于設(shè)置艇抠,直觀且簡(jiǎn)化了很多工作。
12.Body-parser
主體解析中間件久锥,它提取傳入請(qǐng)求流的整個(gè)主體部分家淤,并將其公開在 req.body
上,以便與之交互瑟由。
?? API 服務(wù)
13.Restify
一個(gè) Node.js web
服務(wù)框架絮重,為構(gòu)建語(yǔ)義正確的 RESTful web
服務(wù)進(jìn)行了優(yōu)化,可以大規(guī)模生產(chǎn)使用歹苦。Restify
優(yōu)化了自省和性能青伤。
14.GraphQL
用于 api
的查詢語(yǔ)言和用于對(duì)運(yùn)行時(shí)的現(xiàn)有數(shù)據(jù)執(zhí)行這些查詢。提供 API 中數(shù)據(jù)的完整描述殴瘦,使客戶端能夠準(zhǔn)確地要求他們所需要的數(shù)據(jù)狠角。
?? Web sockets
15.Socket.io
Socket.IO 支持實(shí)時(shí),雙向和基于事件的通信蚪腋。 它可以在每個(gè)平臺(tái)丰歌,瀏覽器或其他設(shè)備上運(yùn)行,并同時(shí)關(guān)注可靠性和速度屉凯。
16.WS
簡(jiǎn)單易用立帖,快速且經(jīng)過(guò)全面測(cè)試的 WebSocket
客戶端和服務(wù)器實(shí)現(xiàn)。 一個(gè)很好的悠砚,不太抽象的晓勇,Socket.io
的替代方案。
? 日志
17.Morgan
具體來(lái)說(shuō)灌旧,它是一個(gè) HTTP
請(qǐng)求記錄器绑咱,存儲(chǔ) HTTP
請(qǐng)求,并為你提供有關(guān)應(yīng)用程序如何使用以及可能存在潛在錯(cuò)誤的簡(jiǎn)要信息节榜。
18.Winston
一個(gè)幾乎所有內(nèi)容的日志記錄器羡玛,支持多種傳輸方式别智。它存儲(chǔ)的時(shí)間比 Morgan
長(zhǎng)宗苍,它也有一個(gè)更大的維護(hù)者社區(qū)和更多的下載。
?? 數(shù)據(jù)庫(kù)工具
19.Mongoose
Mongoose
是一個(gè) MongoDB
對(duì)象建模工具薄榛,設(shè)計(jì)用于在異步環(huán)境中工作讳窟。Mongoose
支持 Promise
和回調(diào)。
20.Sequelize
Sequelize
是一個(gè)基于 Promise
的 Node.js
ORM
敞恋,適用于 Postgres丽啡、MySQL、MariaDB硬猫、SQLite 和 Microsoft SQL Server补箍。它具有可靠的事務(wù)支持改执、關(guān)系、即時(shí)和延遲加載坑雅、讀取復(fù)制等特性辈挂。
?? 授權(quán)工具
21.Passport
Passport
的目的是通過(guò)一組可擴(kuò)展的插件(稱為策略)對(duì)請(qǐng)求進(jìn)行身份驗(yàn)證。向Passport
提供一個(gè)身份驗(yàn)證請(qǐng)求裹粤,Passport
提供鉤子來(lái)控制身份驗(yàn)證成功或失敗時(shí)發(fā)生的操作终蒂。
22.Bcrypt
它是可以幫助你哈希密碼的庫(kù)。Bcrypt
是由 Niels Provos 和 David Mazieres
基于 Blowfish cipher 設(shè)計(jì)的密碼哈希函數(shù)遥诉,并于 1999 年在 USENIX 上展出拇泣。
23.JSONWebToken
JSON Web
令牌(JWT)是一種開放的、行業(yè)標(biāo)準(zhǔn)的 RFC 7519
方法矮锈,用于在雙方之間安全地表示聲明霉翔。這個(gè)包允許你解碼、驗(yàn)證和生成 JWT苞笨。
??配置模塊
24.Config
設(shè)置存儲(chǔ)在應(yīng)用程序中的配置文件中早龟,可以由環(huán)境變量、命令行參數(shù)或外部源覆蓋和擴(kuò)展猫缭。
25.Dotenv
零依賴模塊葱弟,將環(huán)境變量從 .env
文件加載到 process.env
。
?? 靜態(tài)網(wǎng)站生成器
26.Gatsby
一個(gè)現(xiàn)代的網(wǎng)站生成器猜丹,可以創(chuàng)建快速芝加,高質(zhì)量,動(dòng)態(tài)的 React
應(yīng)用程序射窒,從博客到電子商務(wù)網(wǎng)站再到用戶儀表板藏杖。 很棒的插件生態(tài)系統(tǒng)和模板。
27.NextJS
NextJS
首先支持服務(wù)器渲染以及靜態(tài)生成的內(nèi)容脉顿。 你還可以將 serverless
功能定義為 API
端點(diǎn)蝌麸。
28.NuxtJS
在 Vue
的生態(tài)系統(tǒng)中,NuxtJS
基本上是 NextJS
的替代品艾疟。NuxtJS
的目標(biāo)是讓 web
開發(fā)功能強(qiáng)大来吩,并且讓開發(fā)者具有良好的開發(fā)意識(shí)。
??模板語(yǔ)言
29.Mustache
Mustache
是一種無(wú)邏輯的模板語(yǔ)法蔽莱。它可以用于 HTML
弟疆,配置文件,源代碼等任何東西盗冷。它的工作原理是使用 hash 或?qū)ο笾刑峁┑闹翟谀0逯姓归_標(biāo)記怠苔。
30.Handlebars
使用模板和輸入對(duì)象生成 HTML
或其他文本格式。Handlebars
模板看起來(lái)像一個(gè)嵌入了把手的表達(dá)式的正則文本。Handlebars
很大程度上與 Mustache
模板兼容痹束。
31.EJS
EJS
是一種簡(jiǎn)單的模板語(yǔ)言喊式,可讓你使用簡(jiǎn)單的語(yǔ)法拴泌,快速的執(zhí)行和簡(jiǎn)單的調(diào)試 JavaScript
來(lái)生成 HTML
標(biāo)記椅挣。EJS
擁有大量的活躍用戶社區(qū)系吭,并且該庫(kù)正在積極開發(fā)中啡直。
?? 圖像處理
32.Sharp
一個(gè)很好的模塊箫柳,可以將常見格式的大圖像轉(zhuǎn)換為較小的讼育,對(duì)網(wǎng)絡(luò)友好的帐姻,不同尺寸的 JPEG,PNG 和 WebP 圖像奶段。
33.GM
多虧了 Node.js
模塊 GM
饥瓷,你可以使用兩個(gè)流行的工具—— GraphicsMagick 和 ImageMagick 直接在代碼中創(chuàng)建,編輯痹籍,合成和轉(zhuǎn)換圖像呢铆。
34.Cloudinary
一個(gè)專用模塊可簡(jiǎn)化與云服務(wù)的協(xié)作,該解決方案為 Web
應(yīng)用程序的整個(gè)圖像管理管道提供了解決方案蹲缠。
?? 日期格式化
35.DayJS
DayJS是 MomentJS (自2020年9月起處于維護(hù)模式)的一種快速棺克、輕巧的替代方案。它們的 API
使用類似线定,如果你使用過(guò)MomentJS
娜谊,則已經(jīng)知道如何使用大多數(shù) DayJS
。
36.Luxon
如果你喜歡另一個(gè)輕量級(jí)替代方案斤讥,并且 API
稍有不同纱皆,那么 Luxon
可能是你的正確選擇。
???♂? 數(shù)據(jù)生成器
37.Shortid
創(chuàng)建非常短無(wú)序的 url 友好的唯一 ID芭商。 非常適合網(wǎng)址縮短派草、數(shù)據(jù)庫(kù) ID 和其他任何 ID。
譯者注:看到官方不推薦再使用铛楣,而是推薦使 nanoid
38.Uuid
方便而且體積小的包近迁,可以快速、輕松地生成更復(fù)雜的通用惟一標(biāo)識(shí)符(UUIDs)簸州。
39.Faker
實(shí)用的 npm 包鉴竭,用于在瀏覽器和 Node.js
中制造大量假數(shù)據(jù)。
? 校驗(yàn)工具
40.Validator
便捷的字符串驗(yàn)證器勿侯,使程序更加健壯的庫(kù)拓瞪。許多有用方法缴罗,例如 isEmail()
助琐,isCreditCard()
,isDate()
和 isURL()
面氓。
41.Joi
強(qiáng)大的 JavaScript
schema
描述語(yǔ)言和數(shù)據(jù)驗(yàn)證器兵钮。
?? 表單和郵件
42.Formik
Formik
是 React
和 React Native
的一個(gè)流行開源表單庫(kù)蛆橡。它具有易于使用、聲明性和適應(yīng)性的特點(diǎn)掘譬。
43.Multer
Multer
是用于 multipart/form-data
數(shù)據(jù)的 Node.js
中間件泰演,主要用于上傳文件。
44.Nodemailer
Nodemailer
是 Node.js
應(yīng)用程序的一個(gè)模塊葱轩,允許輕松發(fā)送電子郵件睦焕。這個(gè)項(xiàng)目從 2010 年就開始了,現(xiàn)在它是大多數(shù) Node.js
用戶默認(rèn)使用的解決方案靴拱。
?? 測(cè)試
45.Jest
Jest
是一個(gè)令人愉快的 JavaScript 測(cè)試框架垃喊,專注于簡(jiǎn)潔明快。它允許你使用易于使用袜炕、熟悉且功能豐富的 API
編寫測(cè)試本谜,從而快速獲得結(jié)果。
46.Mocha
Mocha
是一個(gè) JavaScript
測(cè)試框架偎窘,使得異步測(cè)試簡(jiǎn)單而有趣乌助。Mocha
測(cè)試是串行運(yùn)行的,在將未捕獲的異常映射到正確的測(cè)試用例的同時(shí)陌知,允許進(jìn)行靈活和準(zhǔn)確的報(bào)告他托。
?? Web 抓取和自動(dòng)化
47.Cheerio
Cheerio
廣泛用于 web
抓取工作,有時(shí)也用于自動(dòng)執(zhí)行任務(wù)仆葡。它非成掀恚快,因?yàn)樗腔?jquery
的浙芙。Cheerio
安裝了 Parse5
解析器登刺,能夠解析任何類型的 HTML
和 XML
文檔。
48.Puppeteer
Puppeteer
被廣泛用于自動(dòng)執(zhí)行瀏覽器任務(wù)嗡呼,并且只能與谷歌 chrome
無(wú)頭瀏覽器(即 chromium
)一起工作纸俭。Puppeteer
還可以用于 web
抓取任務(wù)。與 Cheerio
模塊相比南窗,它功能強(qiáng)大揍很,功能豐富。
?? 檢測(cè)和格式化工具
49.ESLint
ESLint
是用于識(shí)別和報(bào)告 ECMAScript / JavaScript
代碼中的書寫方式的工具万伤。 ESLint
是完全插件化的窒悔,每個(gè)規(guī)則都是一個(gè)插件,你可以在運(yùn)行時(shí)添加更多內(nèi)容敌买。
50.Prettier
Prettier
是一種固執(zhí)己見的代碼格式化程序简珠。它通過(guò)解析代碼并使用自己的規(guī)則(考慮到最大行的長(zhǎng)度)重新打印代碼,以及在必要時(shí)包裝代碼,來(lái)強(qiáng)制執(zhí)行一致的樣式聋庵。
?? 模塊打包和壓縮器
51.Webpack
一個(gè)著名的功能強(qiáng)大的模塊打包器膘融。它的主要目的是將 JavaScript
文件打包以便在瀏覽器中使用,但它也能夠轉(zhuǎn)換祭玉、捆綁或打包任何資源氧映。
52.HTML-Minifier
輕巧,高度可配置且經(jīng)過(guò)良好測(cè)試的基于 Javascript
的 HTML
壓縮器/壓縮器(支持 Node.js
)脱货。
53.Clean-CSS
適用于 Node.js
平臺(tái)和任何現(xiàn)代瀏覽器的快速高效的 CSS
優(yōu)化器岛都。 具有高度可配置和多種兼容模式。
54.UglifyJS2
JavaScript
解析器振峻,壓縮程序和美化工具包疗绣。 它可以使用多個(gè)輸入文件,并支持許多配置選項(xiàng)铺韧。
?????進(jìn)程管理和運(yùn)行
55.Nodemon
在 Node.js
應(yīng)用程序的開發(fā)過(guò)程中使用的簡(jiǎn)單的監(jiān)控腳本多矮。對(duì)于開發(fā)非常有用,因?yàn)樗浅H菀字貑⒐颍⑶夷J(rèn)啟用了文件監(jiān)聽
56.PM2
帶有內(nèi)置負(fù)載均衡的 Node.JS
應(yīng)用程序的生產(chǎn)進(jìn)程管理器塔逃。 更全面,更適合生產(chǎn)料仗,給你很多參數(shù)以進(jìn)行調(diào)整功能
57.Concurrently
簡(jiǎn)單而直接——這是同時(shí)運(yùn)行多個(gè)命令的有用工具湾盗。
?? CLI 和調(diào)試工具
58.Commander
提供一個(gè)連貫的 API
,用于定義 CLI
應(yīng)用程序的各個(gè)方面立轧,如命令格粪、選項(xiàng)、別名和幫助氛改。簡(jiǎn)化了命令行應(yīng)用程序的創(chuàng)建帐萎。
59.Inquirer
一個(gè)易于嵌入且美觀的 Node.js
命令行界面。 提供了很棒的查詢會(huì)話流程胜卤。
60.Chalk
Chalk
是一個(gè)非常簡(jiǎn)單的庫(kù)疆导,創(chuàng)建它的目的很簡(jiǎn)單——給你的終端字符串添加樣式。
61.Debug
一個(gè)很小的 JavaScript
調(diào)試實(shí)用程序葛躏。 只需將一個(gè)函數(shù)的名稱傳遞給模塊澈段,它就會(huì)返回一個(gè)經(jīng)過(guò)修飾的 console.error
版本,以便你將調(diào)試語(yǔ)句傳遞給該模塊舰攒。
?? 工具庫(kù)
62.Lodash
現(xiàn)代化的 JavaScript
實(shí)用程序庫(kù)败富,提供模塊化,高性能以及其他功能摩窃。 公開關(guān)于 JavaScript
數(shù)組兽叮,對(duì)象和其他數(shù)據(jù)結(jié)構(gòu)的許多有用方法。
63.Underscore
Underscore
提供了許多常用的功能工具以及更專業(yè)的工具:函數(shù)綁定,javascript
模板充择,創(chuàng)建快速索引德玫,深度相等測(cè)試等匪蟀。
64.Async
Async
是一個(gè)實(shí)用模塊椎麦,它為異步 JavaScript
提供了直接、強(qiáng)大的功能材彪。
?? 系統(tǒng)模塊
65.Fs-extra
fs -extra
包含了 Node.js
fs
包中沒(méi)有包含的方法观挎,比如 copy()
, remove()
, mkdirs()
66.Node-dir
用于一些常見目錄和文件操作的模塊,包括用于獲取文件數(shù)組段化、子目錄和用于讀取和處理文件內(nèi)容的方法嘁捷。
67.Node-cache
一個(gè)簡(jiǎn)單的緩存模塊,具有設(shè)置显熏,獲取和刪除方法的功能雄嚣,類似于memcached。 key 值可以具有一個(gè)超時(shí)設(shè)置(ttl)喘蟆,在此時(shí)間之后它們將過(guò)期并從緩存中刪除缓升。
?? 其它:
68.Helmet
通過(guò)設(shè)置各種 HTTP
頭部來(lái)幫助你保護(hù)應(yīng)用程序。 它是 Connect
風(fēng)格的中間件蕴轨,兼容 Express
等框架港谊。
69.PDFKit
DFKit
是一個(gè)用于 Node
和瀏覽器的 PDF
文檔生成庫(kù),它可以輕松創(chuàng)建復(fù)雜橙弱、多頁(yè)的可打印文檔歧寺。
70.CSV
全面的 CSV
套件,結(jié)合了 4 個(gè)經(jīng)過(guò)測(cè)試的軟件包棘脐,可以生成斜筐,解析,轉(zhuǎn)換和字符串化 CSV
數(shù)據(jù)蛀缝。
71.Marked
用于解析 markdown
而不需要緩存或長(zhǎng)時(shí)間阻塞的低級(jí)編譯器奴艾。
72.Randomcolor
一個(gè)用于生成有吸引力的隨機(jī)顏色的小腳本。 你可以傳遞選項(xiàng)對(duì)象從而決定其產(chǎn)生的顏色類型内斯。
73.Pluralize
該模塊使用預(yù)先定義的規(guī)則列表蕴潦,按順序應(yīng)用這些規(guī)則給指定單詞單數(shù)或復(fù)數(shù)。 在許多情況下這很有用俘闯,例如基于用戶輸入的任何自動(dòng)化潭苞。
希望你找到了對(duì)你有用的有用 npm
包!
感謝你閱讀 關(guān)注我可以獲取更多信息真朗!
譯者:本篇內(nèi)容翻譯得不好的地方此疹,歡迎大家指出