2021 年最值得了解的 Node.js 工具

大家好,我是若川。今天分享一篇用得上的 node 庫 鏈接地址:https://github.com/huaize2020/awesome-nodejs

?前言:文章的靈感來源于,社群中某大佬分享一個自己耗時數月維護的github項目 awesome-nodejs 。或許你跟我一樣會有一個疑惑,github上其實已經有個同類型的awesome-nodejs庫且還高達41k?,重新維護一個新的意義何在?當你深入對比后,本質上還是有差別的,一個是分類體系粒度更細,其次是對中文更友好的翻譯維護,也包括了對國內一些優秀的開源庫的收錄。最后我個人認為通過自己梳理,也能更好地做復盤和總結?

通過閱讀 awesome-nodejs ?庫的收錄,我抽取其中一些應用場景比較多的分類,通過分類涉及的應用場景跟大家分享工具

1.Git

1.1 應用場景1: 要實現git提交前 eslint 校驗和 commit 信息的規范校驗?

可以使用以下工具:

  • husky - 現代化的本地Git鉤子使操作更加輕松

  • pre-commit - 自動在您的git儲存庫中安裝git pre-commit腳本,該腳本在pre-commit上運行您的npm test。

  • yorkie 尤大改寫的yorkie,yorkie實際是fork husky,讓 Git 鉤子變得簡單(在 vue-cli 3x 中使用)

1.2 應用場景2: 如何通過node拉取git倉庫?(可用于開發腳手架)

可以使用以下工具:

  • download-git-repo - 下載和提取Git倉庫 (支持GitHub, GitLab, Bitbucket)。

1.3 應用場景3: 如何在終端看git 流程圖?

可以使用以下工具:

gitgraph - ?在 Terminal 繪制 git 流程圖(支持瀏覽器、React)。

1.4 其他

git-url-parse - 高級別git解析。giturl - 將Git鏈接轉化成Web鏈接。

2.環境

2.1 應用場景1: 如何根據不同環境寫入不同環境變量?

可以使用以下工具:

  • cross-env - ? 跨平臺環境腳本的設置,你可以通過一個簡單的命令(設置環境變量)而不用擔心設置或者使用環境變量的平臺。

  • dotenv - ? ?從 .env文件 加載用于nodejs項目的環境變量。

  • vue-cli --mode - ? 可以通過傳遞 --mode 選項參數為命令行覆寫默認的模式

3.NPM

3.1 應用場景1: 如何切換不同npm源?

可以使用以下工具:

  • nrm - ? ?快速切換npm注冊服務商,如npm、cnpm、nj、taobao等,也可以切換到內部的npm源

  • pnpm - ?可比yarn,npm 更節省了大量與項目和依賴成比例的硬盤空間

3.2 應用場景2: 如何讀取package.json信息?

可以使用以下工具:

  • read-pkg-up - ? 讀取最近的package.json文件。

  • node-pkginfo - ?從package.json讀取屬性的簡單方法。

3.3 應用場景3:如何查看當前package.json依賴允許的更新的版本

可以使用以下工具:

npm-check-updates - ? 找當前package.json依賴允許的更新的版本。

3.4 應用場景4:如何同時運行多個npm腳本

? 通常我們要運行多腳本或許會是這樣npm run build:css && npm run build:js ,設置會更長通過&來拼接 ?

可以使用以下工具:

  • npm-run-all - ? 命令行工具,同時運行多個npm腳本(并行或串行) npm-run-all提供了三個命令,分別是 npm-run-all run-s run-p,后兩者是 npm-run-all 帶參數的簡寫,分別對應串行和并行。而且還支持匹配分隔符,可以簡化script配置

或者使用

  • concurrently - ? ?并行執行命令,類似 npm run watch-js & npm run watch-less但更優。(不過它只能并行)

3.5 應用場景5:如何檢查NPM模塊未使用的依賴。

可以使用以下工具:

  • depcheck - ?檢查你的NPM模塊未使用的依賴。

3.6 其他:

  • npminstall - 使 npm install 更快更容易,cnpm默認使用

  • semver - NPM使用的JavaScript語義化版本號解析器。關于npm包在線查詢,推薦一個利器 npm.devtool.tech

4.文檔生成

4.1 應用場景1:如何自動生成api文檔?

  • docsify - ? API文檔生成器。

  • jsdoc - ?API文檔生成器,類似于JavaDoc或PHPDoc。

5.日志工具

5.1 應用場景1:如何實現日志分類?

  • log4js-nodey - ?不同于Java log4j的日志記錄庫。

  • consola ?- 優雅的Node.js和瀏覽器日志記錄庫。

  • winston - 多傳輸異步日志記錄庫(古老)

6.命令行工具

6.1 應用場景1: 如何解析命令行輸入?

?我們第一印象會想到的是process.argv,那么還有什么工具可以解析嗎??

可以使用以下工具:

  • minimist - ? 命令行參數解析引擎

  • arg ?- ?簡單的參數解析

  • nopt - Node/npm 參數解析

6.2 應用場景2:如何讓用戶能與命令行進行交互?

可以使用以下工具:

  • Inquirer.js - ?通用可交互命令行工具集合。

  • prompts ?- ?輕量、美觀、用戶友好的交互式命令行提示。Enquirer - ?用戶友好、直觀且易于創建的時尚CLI提示。

6.3 ?應用場景3: 如何在命令行中顯示進度條?

可以使用以下工具:

  • progress - ? Node.js的靈活ascii進度條。

  • progress-estimator ?- ? 記錄進度條并估計完成承諾所需的時間。

6.4 應用場景4: 如何在命令行執行多任務?

可以使用以下工具:

  • listr - ?命令行任務列表。

6.5 應用場景5: 如何給命令行“錦上添花”?

可以使用以下工具:

  • chalk - ? 命令行字符串樣式美化工具。

  • ora ?- ? ?優雅的命令行loading效果。

  • colors.js ?- ? ?獲取Node.js控制臺的顏色。

  • qrcode-terminal ?- ? ?命令行中顯示二維碼。

  • treeify ?- ? ? 將javascript對象漂亮地打印為樹。

  • kleur ?- ? 最快的Node.js庫,使用ANSI顏色格式化命令行文本。

?感興趣的童鞋可以參考樹醬的從0到1開發簡易腳手架,其中有實踐部分工具?

7.加解密

?一般為了項目安全性考慮,我們通常會對賬號密碼進行加密,一般會通過MD5、AES、SHA1、SM,那開源社區有哪些庫可以方便我們使用??

可以使用以下工具:

  • crypto-js - ? JavaScript加密標準庫。支持算法最多

  • node-rsa ?- ? ?Node.js版Bcrypt。

  • node-md5 ?- ? ?一個JavaScript函數,用于使用MD5對消息進行哈希處理。

  • aes-js ?- ? AES的純JavaScript實現。

  • sm-crypto ?- ? 國密sm2, sm3, sm4的JavaScript實現。

  • sha.js ?- ? 使用純JavaScript中的流式SHA哈希。

8.靜態網站生成 & 博客

?一鍵生成網站不香嗎~ 基于node體系快速搭建自己的博客網站,你值得擁有,也可以作為組件庫文檔展示?

可以使用以下工具:

  • hexo - ? 使用Node.js的快速,簡單,強大的博客框架。

  • vuepress ?- ? 極簡的Vue靜態網站生成工具。(基于nuxt SSR)

  • netlify-cms ?- ? ?基于Git的靜態網站生成工具。

  • vitepress ?- ?Vite & Vue.js靜態網站生成工具。

9.數據校驗工具

?數據校驗,離我們最近的就是表單數據的校驗,在平時使用的組件庫比如element、iview等我們會看到使用了一個開源的校驗工具async-validator, 那還有其他嗎??

可以使用以下工具:

  • validator.js - ? ?字符串校驗庫。

  • joi ?- ? 基于JavaScript對象的對象模式描述語言和驗證器。

  • async-validator ?- ? 異步校驗。

  • ajv ?- 最快的JSON Schema驗證器

  • superstruct ?- ?用簡單和可組合的方式在JavaScript和TypeScript中校驗數據。

10. 解析工具

10.1 應用場景1: 如何解析markdown?

可以使用以下工具:

  • marked - ? Markdown解析器和編譯器,專為提高速度而設計。

  • remark ?- ?Markdown處理工具。markdown-it ?-支持100%通用Markdown標簽解析的擴展&語法插件。

10.2 應用場景2: 如何解析csv?

可以使用以下工具:

  • PapaParse - ? 快速而強大的 CSV(分隔文本)解析器,可以優雅地處理大文件和格式錯誤的輸入。

  • node-csv ?- 具有簡單api的全功能CSV解析器,并針對大型數據集進行了測試。

  • csv-parser ?-旨在比其他任何人都快的流式CSV解析器。

10.3 應用場景3: 如何解析xml?

可以使用以下工具:

  • xml2js - ? 將XML轉換為JavaScript對象的轉換器。

  • fast-xml-parser ?- 具驗證&解析 XML。最后

?如果你喜歡這個庫,也給作者huaize2020 一個star 倉庫地址:awesome-nodejs昨天看到一段話想分享給大家?

對于一個研發測的日常:

  • 1.開始工作的第一件事,規劃今日的工作內容安排 (建議有清晰的ToDolist,且按優先級排序)

  • 2.確認工作量與上下游關聯風險(如依賴他人的,能否按時提供出來);有任何風險,盡早暴露

  • 3.注意時間成本、不是任何事情都是值得你用盡所有時間去做的,分清主次關系

  • 4.協作任務,明確邊界責任,不要出現誰都不管,完成任務后及時同步給相關人

  • 5.及時總結經驗,沉淀技術產出實現能力復用,同類型任務,不用從零開始,避免重復工作


最近組建了一個江西人的前端交流群,如果你是江西人可以加我微信?ruochuan12?拉你進群。


推薦閱讀

我在阿里招前端,該怎么幫你(可進面試群)
畢業年限不長的前端焦慮和突破方法

前端搶飯碗系列之Vue項目如何做單元測試
老姚淺談:怎么學JavaScript?

·················?若川簡介?·················

你好,我是若川,畢業于江西高校。現在是一名前端開發“工程師”。寫有《學習源碼整體架構系列》多篇,在知乎、掘金收獲超百萬閱讀。

從2014年起,每年都會寫一篇年度總結,已經寫了7篇,點擊查看年度總結。

同時,活躍在知乎@若川,掘金@若川。致力于分享前端開發經驗,愿景:幫助5年內前端人走向前列。

點擊方卡片關注我、加個星標

今日話題

略。歡迎分享、收藏、點贊、在看我的公眾號文章~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275717.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275717.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275717.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DOMContentLoaded與interactive

ie中inline script執行時竟然第一次進入頁面,doc.readyState是interactive.刷新則是loadinginteractive也就算了,竟然沒有把dom樹構建好,也沒有body...而在inline的腳本里跑計時器什么的,去doc.body.doScroll(left);則有可能碰到interactive時dom樹構建好的情況.而其它瀏覽器in…

figma下載_何時在Figma中使用組或框架

figma下載Groups and Frames have very different uses in Figma, but it’s difficult at first to tell why both of them exist. I can assure you that they complement each other, but first, you need to understand the nuances of each. I’ll show you how to make t…

java標記錯誤_標記電子郵件Java時出錯

在調用以下我的代碼片段時:Message message_in null;inbox instanceof IMAPFolderIMAPFolder f (IMAPFolder)inbox;f.idle();System.out.println("IDLE done");message_in inbox.getMessage(inbox.getMessageCount());message_in.setFlag(Flags.Flag.D…

邁入現代 Web 開發(GMTC 2021 演講全文)

前言:希望像做游戲一樣做 Web 開發的 dexteryy 同學今天在 GMTC 技術大會上又搞了一場「跨年演講」(內容超多的意思),不但現場爆滿、超時嚴重,而且一如既往的講完之后只要把講稿和幻燈片拼起來就能發出來,大…

Laravel 測試: PHPUnit 入門教程

介紹 PHPUnit 測試的基礎知識,使用基本的 PHPUnit 斷言和 Laravel 測試助手。 介紹 PHPUnit 是最古老和最著名的 PHP 單元測試包之一。它主要用于單元測試,這意味著可以用盡可能小的組件測試代碼,但是它也非常靈活,可以用于很多不…

Brad Wilson寫的 ASP.NET MVC 3 Service Location 系列文章索引

Brad Wilson在他自己的博客寫了有關ASP.NET MVC3依賴注入支持的一系列文章,但由于某些原因(你懂的),需要FQ才能閱讀。 為了方便自己也方便喜歡的同學,特意FQ再拷貝回來發布,以下是這一系列文章的索引&#…

注釋標記的原則_它關系到平臺如何標記操縱的媒體。 這是設計師應遵循的12條原則。

注釋標記的原則By Emily Saltz, Tommy Shane, Victoria Kwan, Claire Leibowicz, Claire Wardle埃米莉薩爾茨 ( Emily Saltz) , 湯米沙恩 ( Tommy Shane) , 關 穎琳 ( Victoria Kwan) , 克萊爾萊博維奇 ( Claire Leibowicz) , 克萊…

saltapi java_搭建基于Jenkins salt-api的運維工具

1. 安裝salt-master和salt-minion安裝過程不再贅述,請參考http://docs.saltstack.com/en/latest/topics/installation/index.html2. 安裝salt-api,cherrypy用來jenkins與salt通信啟用salt-api在salt master的配置文件中添加rest_cherrypy:port: 8010host…

他開發了redux,昨晚字節一面卻掛了?

大家好,我是若川,誠邀你進群交流學習。今天分享一次直播的記錄。我寫過redux源碼文章。動手按照文中例子學習,我相信會有所收獲。學習源碼系列、面試、年度總結、JS基礎系列redux的作者是誰?Dan,他的全稱叫做Dan Abram…

Onew積極開拓國際市場,為全球用戶提供全方位金融服務

當區塊鏈技術剛被提出的時候,金融被認為是最主要的應用場景之一,具體包括建立基于區塊鏈技術的銀行間點對點支付結算系統和跨境支付系統、在交易所運用區塊鏈技術實現股權的登記和轉讓等。 區塊鏈應用于金融領域有著天生的絕對優勢,主觀來看&…

高通董事長:努力降低智能手機價格

高通董事長:努力降低智能手機價格 高通公司董事長兼CEO保羅雅各布近日表示,2011年高通除了繼續與各方合作提供高端及各層次智能手機外,將更加致力于降低智能手機的價格。 手機將成為個人生活中心 作為移動通信芯片領域的霸主,高通…

mysql數據庫的新特性_【數據庫】MySQL新特性歸檔介紹

MySQL 8.0.17發布了,看了下release note,發現果真如之前預期的那樣,恢復了redo log歸檔(redo log archiving)功能。之所以說是“恢復”,那是因為在InnoDB非常古老的版本(MySQL 4.0.6之前的版本)才存在,之后就取消了&am…

為什么同事寫的代碼那么優雅~

大家好,我是若川,誠邀你進群交流學習。今天分享一篇相對輕松的代碼簡潔之道。學習源碼系列、面試、年度總結、JS基礎系列內容出自《代碼整潔之道》、Alex Kondov[1]的博文tao-of-react[2]和《Clean Code of Javascript》image.png代碼整潔有什么用&#…

[轉]讓你賺大錢成富翁的4個投資習慣

本文轉自:http://bbs.jrj.com.cn/msg,68723793.html 第一條:對自己進行投資  這是最大最大的投資,當然收獲也是最為豐盛的。藝不壓身,這句話非常有哲理。朋友今年27歲,可是毫不夸張地說,他已經具有了百萬…

thymeleaf th:href url傳遞多參數

<a th:href"{/teacherShowMember(class_id${class.classId}&#xff0c;class_name${class.className})}"></a> thymeleaf使用&#xff08;,,&#xff09;的形式解析多個參數,結合${}放置變量十分方便 傳統URL傳遞多參數使用&#xff1f;&拼接 <a…

spring 加載java類_在Spring中基于Java類進行配置的完整步驟

在Spring中基于Java類進行配置的完整步驟發布于 2020-7-7|復制鏈接基于Java配置選項&#xff0c;可以編寫大多數的Spring不用配置XML&#xff0c;下面前言JavaConfig 原來是 Spring 的一個子項目&#xff0c;它通過 Java 類的方式提供 Bean 的定義信息&#xff0c;在 Spring4 的…

2021 年最值得了解的 Node.js 工具(下)

大家好&#xff0c;我是若川&#xff0c;誠邀你加群長期交流。今天分享一篇用得上的 node 庫。下篇。鏈接地址&#xff1a;https://github.com/huaize2020/awesome-nodejs。上篇是&#xff1a;2021 年最值得了解的 Node.js 工具?前言&#xff1a;前端時間分享了這些node開源工…

技術點

前端所用技術 后臺頁面 感謝 H-ui、FlatLab 提供靜態頁面支持Ztree&#xff1a;jQuery樹插件DataTables&#xff1a;jQuery表格插件Layer&#xff1a;web彈層組件Distpicker&#xff1a;中國省市區地址三級聯動插件KindEditor&#xff1a;富文本編輯器 簡潔方便 沒UEditor那么多…

掃描java類文件_java遞歸與非遞歸實現掃描文件夾下文件的實例代碼

java遞歸與非遞歸實現掃描文件夾下所有文件java掃描指定文件夾下面的所有文件&#xff0c;供大家參考&#xff0c;具體內容如下掃描一個文件夾下面的所有文件&#xff0c;因為文件夾的層數沒有限制可能多達幾十層幾百層&#xff0c;通常會采用兩種方式來遍歷指定文件夾下面的所…

【阿里內部應用】基于Blink為新商業調控打造實時大數據交互查詢服務

基于Blink為新商業調控打造實時大數據交互查詢服務 案例與解決方案匯總頁&#xff1a;阿里云實時計算產品案例&解決方案匯總從IT到DT、從電商到新商業&#xff0c;阿里巴巴的每個細胞都存在大數據的DNA&#xff0c;如何挖掘大數據的價值成為搶占未來先機的金鑰匙&#xff0…