前言:文章的灵感来源于,社群中某大佬分享一个本人耗时数月保护的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色彩格式化命令行文本。

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.及时总结经验,积淀技术产出实现能力复用,同类型工作,不必从零开始,防止反复工作

你好,我是 树酱,请你喝杯 记得三连哦~

1.浏览完记得点个赞哦,有 有能源

2.关注公众号前端那些趣事,陪你聊聊前端的趣事

3.文章收录在Github frontendThings 感激Star✨