其他分享
首页 > 其他分享> > 挑选npm模块很费事?掌握这些技巧就能事半功倍!

挑选npm模块很费事?掌握这些技巧就能事半功倍!

作者:互联网

挑选npm模块很费事?掌握这些技巧就能事半功倍!


image.png



作者 | coreyc
译者 | 王强编辑 | Yonie

熟悉 Node 或前端 JavaScript 工作的同学都知道,社区中的可用模块有数十万之多。

开发人员经常会提问或抱怨,比如说:

“开发易,选模块难......”

“X 模块和 Y 模块区别在哪里,哪一个更好?”

“npm 很好用,可是那些模块指不定半年一年多就没用了,具体看它们的支持情况。”

在谈到这些问题时,你通常会得到十个不同的答案。每个人都会向你推荐他最宝贝的模块,然后大家就会为哪个模块是最好的这个话题吵得不可开交。

选择 npm 模块时容易遇到“分析瘫痪”这种情况。可选项实在太多了,还总有一大堆新模块被吹成是“你,值得拥有”,想要为自己的项目选出合适的模块实在不是件容易的事情。而且许多模块做的事情都是差不多(或者完全一样)的,更给人添乱。

其实你用不着浪费时间在谷歌或 npmjs.org 上乱搜一通,影响你的应用构建工作;你要做的就是知道在什么时候选择哪些模块。

精选列表

为了帮你解决这个问题,本文针对各种最常见的问题类型制作了一份模块列表(例如 Web 框架、模板、身份验证等),并告诉你这些模块应该何时使用。

有一些注意事项:有些模块你可能已经很熟悉了,但有时你会遇到完全陌生的技术栈(比如说身份验证或 Web Socket 之类),这时候你需要知道用哪些模块可以完成工作。你可能觉得某款模块更出色。也可能你的用例 / 需求不在下面的列表里。我并没有在每个分类下塞一堆选项,而是尽量精简,避免陷入分析瘫痪的陷阱。如果你的场景比较特殊,那么就得自己做些调查来做补充了;这个列表的目的是让你更快地投身工作。

这些模块是基于下面的原则挑选出来的:

如果你还是觉得信息不足,难下决定,我建议使用 slant.co 和 nodejs.libhunt.com 来做比较。npmtrends.com 这个网站可以对比不同包的下载量 / 问题数 /GitHub 星数,也很有用(感谢 Bill 推荐)。

注意:为了控制范围,记住这些模块都是服务端的。很多模块既能在客户端也能在服务端使用,但总的来说是“服务端优先”原则。

HTTP 请求Web 框架    验证   
const schema = joi.object().keys({
 id: joi.string().guid().required(),
 username: joi.string().alphanum().min(8).required()
});
它不是在 JSON 中定义 schema身份验证   异步   数据库 

下面列出了数据库驱动程序、ORM 和查询构建器等内容。先别急着找 ORM,我强烈建议你先确认自己的确用得着 ORM 再说。很多时候用原始的 SQL 或查询构建器就够了,而 ORM 会加入另一层抽象,性价比不够高。

进程管理

想要对比进程管理器的话,可以参考 http://strong-pm.io/compare/。注意:它们还会同时对比 StrongLoop 进程管理器,后者挺好用但是有些复杂。我建议你先找找解决方案,然后再决定是否使用 StrongLoop。

Web SocketWeb Socket 这里我单推 primus。它支持所有流行的 Web Socket 实现,而且更新维护很勤快;如果你想换个库用,那么改一行代码就能轻松切换不同的库了。API 文档实用程序 / 杂项    CLI      日志     模板     测试      工具      调试   

目前 Node 的原生调试已经够用了,我建议用原生功能就行。几年前一些额外的 npm 模块还能有些帮助,有的特定场景可能用得着;但是现在有了足够的原生支持,如果你没什么疯狂的调试需求就最好省掉额外的依赖项。

   小结   

挑选模块可能会很费事,但用些技巧就能事半功倍。如果你犯了选择困难症,甚至不知道从哪里下手的话就看看本文的推荐吧。

英文原文: https://www.coreycleary.me/which-of-the-635000-npm-modules-do-i-choose/

 活动推荐

8 月 17 日(周六 13:00-17:30),由腾讯云主办的 Hello Serverless 来了!主题沙龙将深圳腾讯大厦和大家见面。为大家讲解 Serverless 2.0 如何从 0 到 1 、运行原理及应用场景;云函数架构设计、冷启动优化、本地开发调试等问题解析;还有无服务器云函数 + 新餐饮案例落地展示。

此次沙龙活动免费,点击「阅读原文」或者识别图中二维码进行报名,有任何问题欢迎联系沙龙小助手 Sherry:13515560940 或添加 WX:Sherryia01




标签:npm,费事,需要,时用,ORM,事半功倍,模块,使用
来源: https://blog.51cto.com/15057848/2566865