推荐好用的JavaScript模块

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

译者按: 作者将自己常用的JavaScript模块分享给大家。

  • 原文:? JavaScript Modules Worth Using ?
  • 译者: Fundebug

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。

本文介绍了我在日常工作中一直使用的JavaScript模块,包括NodeJS和前端JavaScript。当然,这篇文章会有强烈的个人主观性。我推荐的模块可能会有遗漏,并且不会包含任何特定用途的模块。比如有一些推荐的模块确实很酷,但是不一定实用。

命令行工具

我们先来介绍命令行工具。

np 一个更好的发布npm模块的工具

如果你是一个npm包的作者,我强烈推荐你使用np,它使得版本控制、添加git release tag,和发布到npm一气呵成。特别是如果你拥有多个npm模块的时候。同时我也推荐Zeit发布的release也是一个很不错的选择。

yarn 一个比npm更好的包管理工具

尽管np v5已经比之前的版本快了许多,从速度和一致性的角度,我依然更加倾向于在本地开发中使用yarn来管理。不管哪种方式,底层都是在和同一个npm模块的数据库交互,所以我想他两之间没有一个绝对的胜者。你选择最适合你自己的就好。

作为一个2018年的JS开发者,我建议你将两者都熟悉。

prettier 一个公认的代码美化工具

Prettier通过分析你的代码然后重新排版来保证代码格式的一致性。我喜欢eslint并一直使用JavaScript的标准格式风格,但是prettier和gofmt这种自动化格式美化带来的吸引力无法拒绝。

作为开发者,我们花了太多的时间和精力去维护代码格式,实在是浪费。使用prettier这类工具可以让我们从这些琐事中解脱,专注于代码。

now 超级简单的部署工具

从简洁性、稳定性和拥有的特性上来说,Now绝对是现在最好的免费的部署系统。不管是静态还是动态部署、甚至要扩展到多个服务器,都可以很好的为你服务。而且,最重要的一点,就算你扩展到多服务器,还是免费的!

Now对Node.js以及JS支撑的网页应用都支持很好。我强烈推荐你们也看看Zeit推出的其它服务。

asciinema 免费录制Terminal的工具

你可以使用asciinema来录制Terminal操作。

Promise

pify

我发现pify是最好的模块,用来将回调函数风格的函数转为Promise。它很轻巧,而且有连util.promisify都没有的自动方法绑定功能。

p-map

p-map用来设置并发地执行promises。考虑到计算资源和带宽,你肯定不想没有限制地完全并发所有的promise,p-map可以设置并发数量。我想你完全可以用p-map来替代Promise.all(...)。

p-retry

通常,我会使用p-retry将所有的HTTP请求和外部服务包裹起来,来进一步增强代码的健壮性。p-retry可以配置retry的次数。配合p-map,你可以并发执行大量的请求而且不用担心偶尔遇到网络错误、服务器超时和Socket中断等等。

p-timeout

p-timeout也是一个必不可少的模块。

p-cache/p-memoize

通过LRU缓存来记住async函数的结果。

这些Promise工具函数库让我想起了关于构建健壮微服务的文章,每一个外部依赖都可以包含一个统一的接口包括retry, timeout, caching,circuit breakers, 回滚等等。

内容抓取

cheerio

如果你想处理原生的HTML,Cheerio是一个很棒的工具。它提供了像jQuery一样的语法来访问和处理HTML文档。Cheerio配合request-promise-native来获取网页最佳。

puppeteer

和cheerio不同,puppeteer是一个用来自动化运行headless chrome instance的工具。它可以用来:1. 生成页面的截图或则PDF;2. 爬取单页面应用内容并将其渲染(SSR);3. 自动化表单填写、UI测试、输入等等。它将逐渐取代像PhantomJS这样的技术。

Node.js

dotenv-safe

dotenv-safe是dotenv模块的扩展,从.env加载本地环境变量,并确保它们都存在。通过配置.env.example文件来制定哪些变量必须要配置。

request和request-promise-native

执行HTTP请求是一个很常见的操作,我选择request-promise-native模块。该模块将request模块拓展成Promise。95%的情况下,我使用await来处理HTTP请求,只有5%的时间我需要直接用request来处理返回数据。

为了健壮性,我会配合p-retry,p-timeout和p-cache来使用。

另外我补充一下, got是一个新的候选项,虽然我还没怎么使用很多。

consolidate

Consolidate用来处理后端模板化很有用(邮件、推特、原生HTML等等)。我通常使用handlebars来作为模板引擎,不过我会配合使用consolidate。因为它有更加简洁和UI之的界面,不管你在底层使用何种引擎都可以配合使用。

execa

当你需要执行shell脚本或则子进程的时候很有用。

fs-extra

我几乎不使用fs模块了,fs-extra为fs模块附加了不少方法并且支持Promise。

Math

D3 (Data-Driven Documents) 是一个流行的前端数据可视化库,它同时也包含了很多常见的数学操作的库。我经常用到那些库,接下来推荐给你们。

d3-random 生成随机数

当你觉得Math.ramdom不够用的时候,不妨试试d3-random。它支持用不同的分布来随机,比如均匀分布、正太分布和指数分布。

d3-ease

Easing 是一种通过扭曲时间来控制动画中的表现形式的方法。通常被用来 slow-in, slow-out。通过对时间的缓动,animated transitions 会更平滑且运动过程也更合理。

d3-interpolate

这个库提供了多种做插值的方法来对数字、颜色、字符串、数组、对象等进行插值。

Testing

ava

Ava是一个很棒的JS测试器,请不要惊讶我又使用了Sindre Sorhus创造的另一个工具。它包含了mocha, tape, chai以及其他工具的优点。

nock

Nock 是前端常用来模拟http请求响应的工具,它基于nodejs的原生http模块。

sinon

Sinon.js是一个非常有用的测试辅助工具,在为Node程序写测试时可能可以派上用场。我建议每一个Node开发者都应该将它加入到自己的工具库中。

关于Fundebug

Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了9亿+错误事件,得到了Google、360、金山软件、百姓网等众多知名用户的认可。欢迎免费试用!

版权声明

转载时请注明作者Fundebug以及本文地址: https://blog.fundebug.com/2018/12/18/javascript-modules-worth-using/

转载于:https://my.oschina.net/u/3375885/blog/2989755

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537299.shtml

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

相关文章

select函数_SQL高级功能:窗口函数

一、窗口函数有什么用?在日常生活中,经常会遇到需要在每组内排名,比如下面的业务需求:排名问题:每个部门按业绩来排名topN问题:找出每个部门排名前N的员工进行奖励面对这类需求,就需要使用sql的…

发挥项目“临时性”威力,让项目顺利实施

所谓临时性,就是要有明确的“开始”和“结束”。虽然大家都知道项目一定会有开始和结束的,但要更多地关注“明确“。 问题1:问商务(售前)或业主,这个项目什么时候结束? 答:商务或业主他们有时候也不知道,因为国内的项目大多数是提前开始交付,是一边交付,一边把里程…

上拉加载更多后台数据_6-7【微信小程序全栈开发课程】记录页面(七)--分页加载记录数据...

现在是一次性加载所有的记录数据,数据多的时候,会加载比较慢,所以我们改成分页加载,一次最多加载15条数据每次拉倒底部都会自动加载下一页的数据,知道所有的数据加载完成1、添加data变量编辑record.vue文件&#xff0c…

spring cloud eureka服务注册和调用

SPRING INITIALIZR构建工程 spring boot 可通过SPRING INITIALIZR构建项目访问SPRING INITIALIZR官网,填写项目相关信息后,生成项目。将下载的项目解压,打开idea,file-->new-->project from existing sources。import proje…

打印工资条怎么做到每个人都有表头明细_朋友说:能不能用python,帮我写一个“制作工资条”的自动化程序?...

本文说明今天和一个朋友吃饭,她说我经常使用Excel制作工资条,但是每个月都要做一遍,你能不能用python写一个代码,能够自动化完成这个工作。这当然可以啦,就是这么牛逼!我们先来看看原始数据是什么样子的。那…

做优化的数据库工程师请参考!CynosDB的计算层设计优化揭秘

本文由云社区发表本文作者:孙旭,腾讯数据库开发工程师,9年数据库内核开发经验;熟悉数据库查询处理,并发控制,日志以及存储系统;熟悉PostgreSQL(Greenplum,PGXC等&#xf…

netty发送数据_看完这篇还不清楚Netty的内存管理,那我就哭了

说明在学习Netty的时候,ByteBuf随处可见,但是如何高效分配ByteBuf还是很复杂的,Netty的池化内存分配这块还是比较难的,很多人学习过,看过但是还是云里雾里的,本篇文章就是主要来讲解:Netty分配池…

数字化改革体系架构“152”两次迭代升级为“1612”

数字化改革体系架构已经完成两次迭代,152-1512-1612。 2021年,浙江在全国率先启动一项关系全局、影响深远、制胜未来的重大集成改革——数字化改革,并确定为全面深化改革的总抓手。 2021年2月18日,数字化改革大会“152”工作体系…

python 40位的数减个位数_Python数据分析入门教程(五):数据运算

作者 | CDA数据分析师进行到这一步就可以算是开始正式的烹饪了,在这部分之前的数据操作部分我们列举了一些不同维度的分析指标,这一章我们主要看看这些指标都是怎么计算出来的。一、算术运算算术运算就是基本的加减乘除,在Excel或者Python中数…

数字化改革“152”体系详解

架构图 “1” 即一体化智能化公共数据平台(平台大脑),按照“统一规划、统一支撑、统一架构、统一平台、统一标准、统一建设、统一管理、统一运维"的要求,建设省市县三级公共数据平台,叠加三级“大脑功能&#xf…

数字化改革“141”体系

县级以上是“152”大框架,县以下是“141”体系。 141体系是:县级社会治理中心、乡镇(街道)基层治理“四个平台”、村社网格。 “1” 第一个“1”指县级社会治理中心。 “4” 第二个“4”指乡镇(街道)基…

接口做的好怎么形容_淘宝直播预告怎么做才合格?如何做好?

很多淘宝商家在直播前没有做淘宝直播预告,或者不知道怎么去做直播预告,这对直播的效果会有很大的影响,那么直播前如何做好直播预告呢?怎样的直播预告才是合格的,下面来了解一下。1.必须去淘宝直播中控台发布。因为手机上发布目前…

“1+7+N”改革工作体系介绍

2021年,浙江省确定了“17N”的改革工作体系,要求以全面深化改革新成效再创体制机制新优势。(2022年已经升级为“1612N”,点击阅读) “1” 数字化改革,这是浙江全面深化改革的总抓手。将聚焦打造全球数字变…

浙江省数字化改革回顾(2022年5月)

事业的伟大在于目标的壮丽,也在于过程的壮丽;改革的成果在于享有的丰富,也在于经历的丰富。2021年2月18日,春节假期后首个工作日,浙江省委召开全省数字化改革大会,在全国率先开启数字化改革探索实践。此后&…

python 某个数是不是在某个范围内_教写一个简单的python小程序(04)

点击蓝字关注我们 会酸的柚子Python爱好者搞机少年七夕结束了~酸柚也是被强塞了满嘴的狗粮在这样充满恋爱腐朽气息的一天酸柚也是马不停蹄的在赶稿子兄弟们,给我顶起来呀~我们来看看今日的题目可能很多小伙伴对完全平方数这个概念有点生疏了完全平方数数学上&#x…

浙江公布2022年数字化改革“最系列“成果 评选出最佳应用104项

10月29日,省委改革办(省数改办)公布了2022年数字化改革“最系列”成果。该评选由省委改革办(省数改办)会同省委政研室、省人大常委会法工委、省市场监管局和省大数据局共同开展,评选了最佳应用104项、最强大…

dot net core 使用 IPC 进程通信

原文:dot net core 使用 IPC 进程通信版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问。如果当前博客图片看不到,请到 http://lindexi.gitee.io 访问博客。本文地址 https://blog.csdn.net/lindexi_gd/article/details/79946496 dot net core 使…

Android手机用wifi连接adb调试的方法

https://www.jianshu.com/p/dc6898380e38 0x0 前言 Android开发肯定要连接pc的adb进行调试,传统的方法是用usb与pc进行连接,操作简单即插即用,缺点是pc上必须得有对应手机的usb驱动程序,对于谷歌亲儿子系列和三星摩托等外国品牌而…

控制台应用程序换换为窗体应用_Epic为开发者设计了一套iPhone使用的运动捕捉应用程序...

玩懂手机网7月13日资讯,我们都知道对于游戏或者是动漫开发者来说,运动捕捉设备是一套非常昂贵的设备,需要非常专业的独立开发人员,大量的时间才能完成,最近Epic为开发者设计了一套iPhone使用的运动捕捉应用程序。这套i…

蚂蚁金服亿级并发下的移动端到端网络接入架构解析

为了与金融从业者、科技从业者共同探讨金融 业务的深层次问题,蚂蚁金服联手 TGO 鲲鹏会上海分会,在 12 月 8 日举办了「走进蚂蚁金服:双十一背后的蚂蚁金服技术支持」活动。蚂蚁金服高级技术专家贾岛为大家分享了《亿级并发下的蚂蚁移动端到…