脚本宝典收集整理的这篇文章主要介绍了[译]635000 个 npm 包中我应该用哪个,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
原文:Which of the 635000 npm modules do I choose? - Corey Cleary
原创翻译,发表于个人博客He Xing's waking life如有谬误,恳请指正
如果您曾在 Node 或 JavaScript 前端开发中投入过时间和精力,那么您就知道 npm 中有数以十万计的模块可供您选择
开发者不停的寻求帮助/抱怨:
"对模块的选择困难正在蚕食我们"
"X 模块和 Y 模块有什么区别?哪一个更好?"
"npm 很棒,但是这些模块可能在一年半载后失效,取决于模块维护者是否积极"
通常在提出这样的问题时,您会得到十个不同的答案。每个人都会给您推荐自己喜欢的模块,接下来就演变成争论哪一个是最好的。
选择 npm 模块时很容易面临纸上谈兵。选择太多,而新来者在鼓吹“快上车”,为您的项目选择合适的 npm 模块可能是有难度的。而且这些模块中有许多做类似(或相同)的事情,这也没有帮助。
与其浪费时间在 GOOGLE 上搜索,在 npmjs.org 上搜索,或者浪费更多的时间不构建您的项目,还不如搞清楚什么时候该选择哪些模块。
精选清单
为了帮助解决这个问题,您将在下面找到针对最常见问题类型(即 web 框架、模板、身份认证等)的 npm 模块列表,以及何时使用这些模块。
这里有一些注意事项:您可能熟悉其中一些模块,甚至许多模块,但是有时候您面对的是您还没有接触到的技术栈(可能是身份验证或 Websocket 之类的东西),您需要知道有哪些备选模块可以完成这项工作。您可能有您认为更好的模块,或者可能有一个用例/需求没有包含在这里。我没有列出相同类别的 10 个不同模块,而是缩小了范围,这样您就可以避免分析瘫痪的陷阱。如果您认为自己的用例未被涵盖,请务必自行研究解决。本清单的目的在于让您能更快地启动和运行。
这些模块的选择依据如下:
- 它们完成工作的能力如何
- 社区规模(对于支持/故障排除很重要)
- 积极维护
如果您发现自己仍然没有足够的信息做出决定,我建议使用slant.co和nodejs.libhunt.com来帮助进行比较。
注意:为了保持范围的合理性,这些模块都考虑到了服务器端。它们中的一些可以同时在客户机或服务器上使用,但我的原则是“服务器优先”。
HTTP requests (HTTP 请求)
-
- 当您需要基于回调的 HTTP 请求时可选择它,例如从一个 REST 服务连接到另一个。
-
- 当您需要基于 Promise的 HTTP 请求时可选择它
- 注意:您可以使用request-promise,但是 axios 的依赖更少,并且基于原生 Promises
Web frameworks (Web 框架)
-
- 如果您想为 API、网站或单页应用程序使用轻量级 web 框架,请使用它
- 您不介意使用回调作为默认的异步处理方式
- 使用该框架的模块生态极为繁荣
- 您需要一个支持和故障排除的大型社区
-
Koa:
-
-
- 当您需要像 Rails 这样的东西时,请使用它,它具有几乎所有功能(但是根据您的应用程序可能不需要那么多)
Validation (前端验证)