這些node開源工具你值得擁有(上)

image.png

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

image.png

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

1.Git

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

可使用如下工具:css

  • 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倉庫?(可用於開發腳手架)

可使用如下工具:html

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

可使用如下工具:前端

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

1.4 其餘

2.環境

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

可使用如下工具:vue

  • cross-env - 跨平臺環境腳本的設置,你能夠經過一個簡單的命令(設置環境變量)而不用擔憂設置或者使用環境變量的平臺。
  • dotenv - 從 .env文件 加載用於nodejs項目的環境變量。
  • vue-cli --mode - 能夠經過傳遞 --mode 選項參數爲命令行覆寫默認的模式

3.NPM

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

可使用如下工具:java

  • nrm - 快速切換npm註冊服務商,如npm、cnpm、nj、taobao等,也能夠切換到內部的npm源
  • pnpm - 可比yarn,npm 更節省了大量與項目和依賴成比例的硬盤空間

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

可使用如下工具:node

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

可使用如下工具:git

image.png

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

一般咱們要運行多腳本或許會是這樣 npm run build:css && npm run build:js ,設置會更長經過 &來拼接

可使用如下工具:github

  • 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模塊未使用的依賴。
    image.png

3.6 其餘:

  • npminstall - 使 npm install 更快更容易,cnpm默認使用
  • semver - NPM使用的JavaScript語義化版本號解析器。

關於npm包在線查詢,推薦一個利器 npm.devtool.tech
image.png

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:如何讓用戶能與命令行進行交互?

image.png

可使用如下工具:

  • Inquirer.js - 通用可交互命令行工具集合。
  • prompts - 輕量、美觀、用戶友好的交互式命令行提示。
  • Enquirer - 用戶友好、直觀且易於建立的時尚CLI提示。

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

image.png
可使用如下工具:

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

image.png

可使用如下工具:

  • listr - 命令行任務列表。

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

image.png

可使用如下工具:

  • chalk - 命令行字符串樣式美化工具。
  • ora - 優雅的命令行loading效果。
  • colors.js - 獲取Node.js控制檯的顏色。
  • qrcode-terminal - 命令行中顯示二維碼。
  • treeify - 將javascript對象漂亮地打印爲樹。
  • kleur - 最快的Node.js庫,使用ANSI顏色格式化命令行文本。

7.加解密

通常爲了項目安全性考慮,咱們一般會對帳號密碼進行加密,通常會經過MD五、AES、SHA一、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體系快速搭建本身的博客網站,你值得擁有,也能夠做爲組件庫文檔展現

image.png

可使用如下工具:

  • 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?

可使用如下工具:

最後

若是你喜歡這個庫,也給做者 huaize2020 一個star 倉庫地址: awesome-nodejs
昨天看到一段話想分享給你們

對於一個研發測的平常:

  • 1.開始工做的第一件事,規劃今日的工做內容安排 (建議有清晰的ToDolist,且按優先級排序)
  • 2.確認工做量與上下游關聯風險(如依賴他人的,可否按時提供出來);有任何風險,儘早暴露
  • 3.注意時間成本、不是任何事情都是值得你用盡全部時間去作的,分清主次關係
  • 4.協做任務,明確邊界責任,不要出現誰都無論,完成任務後及時同步給相關人
  • 5.及時總結經驗,沉澱技術產出實現能力複用,同類型任務,不用從零開始,避免重複工做

你好,我是🌲 樹醬,請你喝杯🍵 記得三連哦~

1.閱讀完記得點個贊哦,有👍 有動力

2.關注公衆號前端那些趣事,陪你聊聊前端的趣事

3.文章收錄在Github frontendThings 感謝Star✨

相關文章
相關標籤/搜索