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.mzph.cn/news/275717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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…

迈入现代 Web 开发(GMTC 2021 演讲全文)

前言:希望像做游戏一样做 Web 开发的 dexteryy 同学今天在 GMTC 技术大会上又搞了一场「跨年演讲」(内容超多的意思),不但现场爆满、超时严重,而且一如既往的讲完之后只要把讲稿和幻灯片拼起来就能发出来,大…

注释标记的原则_它关系到平台如何标记操纵的媒体。 这是设计师应遵循的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…

高通董事长:努力降低智能手机价格

高通董事长:努力降低智能手机价格 高通公司董事长兼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代码整洁有什么用&#…

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

大家好,我是若川,诚邀你加群长期交流。今天分享一篇用得上的 node 库。下篇。链接地址:https://github.com/huaize2020/awesome-nodejs。上篇是:2021 年最值得了解的 Node.js 工具❝前言:前端时间分享了这些node开源工…

【阿里内部应用】基于Blink为新商业调控打造实时大数据交互查询服务

基于Blink为新商业调控打造实时大数据交互查询服务 案例与解决方案汇总页:阿里云实时计算产品案例&解决方案汇总从IT到DT、从电商到新商业,阿里巴巴的每个细胞都存在大数据的DNA,如何挖掘大数据的价值成为抢占未来先机的金钥匙&#xff0…

Vite 的好与坏

大家好,我是若川,诚邀你进群交流学习。今天分享一篇关于Vite的文章。学习源码系列、面试、年度总结、JS基础系列。全文 3000 字,欢迎点赞关注转发一、Vite 是什么2020年4月,尤大大发了这么一个推:随后,2021…

Windows phone 7新开发工具发布

春节假期已经接近尾声. 马上第一个工作日就要来临. 春节真的不再是一个简简单单的节日. 有时让人感到欣喜 这意味这一年的忙碌都会因为这个节日的到来而画上一个终止符.面临一个不长也不短的假期.眼下的一年翻过去 新的一年即将到来. 似乎一切都可以重新开始. 有时又令人感到无…

opentaps mysql_opentaps 1.4 联接 mysql 笔记

opentaps 1.4 连接 mysql 笔记一、安装 MySQ 略...二、创建MySQL Database opentaps ERP CRM1.mysql -u root -h 127.0.0.1 -p 2.mysql>create database opentaps default CHARACTER SET utf8 COLLATE utf8_general_ci;3.mysql>create user opentaps;4.mysql>grant …

React 核心开发者 Dan Abramov 访谈实录

大家好,我是若川。面试、学习源码系列、年度总结、JS基础系列译者注:本译文是在「在线对话 React.js 核心开发者」一个半小时直播的基础上进行的原文翻译,包括了直播中的所有问答内容,尽可能保留了 Dan 回答的中心语义&#xff0c…

python ev3图形化编程软件下载_mPython(图形化编程软件)

mPython是盛思技术团队在BBC官方原版PythonEditor基础上、拓展开发的应用软件。可以进行可视化代码编程,有hex、python、blockly三种代码读写等功能。功能介绍1、不依赖网络,可离线安装使用2、支持hex、python、blockly三种代码的读写3、blockly模式下支…

python如何安装panda数据库_在Pycharm中安装Pandas库方法(简单易懂)

开发环境的搭建是一件入门比较头疼的事情,在上期的文稿基础上,增加一项Anaconda的安装介绍。Anaconda是Python的一个发行版本,安装好了Anaconda就相当于安装好了Python,并且里面还集成了很多Python科学计算的第三方库。比如我们需…

译文 | Vue 在哪些方面做的比 React 更好?

大家好,我是若川。在过去的五年中,我一直是一名 React 工程师。我爱React。我喜欢开发 React 应用程序。我认为它是目前最好的UI框架之一。但是,在这个领域有一些竞争对手。其中最大的是 Vue.js 。我以前玩过一些 Vue.js,但我认为…

web mp4第一帧_Web成帧器就在这里!

web mp4第一帧The Framer Team is pulling up it’s pants. I sniffed something cooking when they announced a public beta for Framer for web… FRAMER FOR WEB? Yes, I don’t know how they did it, but their powerful set of tools, plugins and animation controls …

Lucene学习总结之三:Lucene的索引文件格式(2)

2019独角兽企业重金招聘Python工程师标准>>> 四、具体格式 上面曾经交代过,Lucene保存了从Index到Segment到Document到Field一直到Term的正向信息,也包括了从Term到Document映射的反向信息,还有其他一些Lucene特有的信息。下面对这…

JavaScript 数组 API 全解析

在编程世界中,数组是指元素的集合。数组将数据作为元素进行存储,并在需要时将其取出。在支持数组的编程语言中广泛地采用了这个数据结构。这个手册会介绍 JavaScript 数组的所有知识。你将会学到复杂数据处理、解构、常用数组方法等内容。我为什么写这篇…