内容简介:译者按:作者将自己常用的JavaScript模块分享给大家。本文介绍了我在日常工作中一直使用的JavaScript模块,包括NodeJS和前端JavaScript。当然,这篇文章会有强烈的个人主观性。我推荐的模块可能会有遗漏,并且不会包含任何特定用途的模块。比如有一些推荐的模块确实很酷,但是不一定实用。
译者按:作者将自己常用的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。它支持用不同的分布来随机,比如均匀分布、正太分布和指数分布。
Easing 是一种通过扭曲时间来控制动画中的表现形式的方法。通常被用来 slow-in, slow-out。通过对时间的缓动,animated transitions 会更平滑且运动过程也更合理。
这个库提供了多种做插值的方法来对数字、颜色、字符串、数组、对象等进行插值。
Testing
Ava是一个很棒的JS测试器,请不要惊讶我又使用了Sindre Sorhus创造的另一个工具。它包含了mocha, tape, chai以及其他工具的优点。
Nock 是前端常用来模拟http请求响应的工具,它基于nodejs的原生http模块。
Sinon.js是一个非常有用的测试辅助工具,在为Node程序写测试时可能可以派上用场。我建议每一个Node开发者都应该将它加入到自己的工具库中。
关于Fundebug
Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和 Java 实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了9亿+错误事件,得到了Google、360、金山软件、百姓网等众多知名用户的认可。欢迎免费试用!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Odoo 模块推荐——Web Notify
- Odoo 模块推荐——Web Dialog Size
- 码云推荐 | OAuth2 授权服务模块 ymate-module-oauth
- 码云推荐 | OAuth2 授权服务模块 ymate-module-oauth
- 分析:基于文本内容推荐和协同过滤推荐
- 《文章推荐系统》系列之推荐流程设计
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
HTTP/2基础教程
Stephen Ludin、Javier Garza / 罗正龙、郑维智 / 人民邮电出版社 / 2018-1 / 49.00元
让网站和应用更快速、更简洁、更稳健,从而有效提升用户体验,这无疑是众多开发者梦寐以求的。然而互联网发展日新月异,HTTP/1.1协议已经难以满足现今的需求。在众多Web性能提升方案中,HTTP/2值得尝试。 本书是HTTP/2实用指南,介绍了HTTP/2的设计初衷和新特性,以及如何才能充分利用这些特性来打造高性能网站及应用。作者用定量分析方法,对比了不同网络环境下及不同浏览器上HTTP/1.......一起来看看 《HTTP/2基础教程》 这本书的介绍吧!