如何选择节点模块?

toa*_*kes 6 module node.js

许多模块可供使用,其中许多模块完成相同的任务.例如,路由器模块列表单独包含26个模块.

给出一个模块列表,我如何才能满足我的需求?我正在寻找一个维护,测试和惯性的,但我不知道如何确定哪些模块符合该标准.

cat*_*aki 4

这个答案基于几周前Isaac Schlueter在旧金山的一次演讲(npm 作者,从 Ryan Dahl 手中接管了 Node.js 职责,在 Joyent 工作 - https://twitter.com/izs

Isaac 现在的主要项目是改进 NPM,帮助人们判断包的质量。

在npmjs.org网站变得更加智能之前,需要考虑以下因素(@3boll 已经列出了一些因素)

因素

  1. 下载次数
  2. 最近更新多少
  3. 更新历史(是否在很长一段时间内经常更新)
  4. 贡献者数量
  5. 知名/值得信赖的开发人员和维护人员是否为其加星标?[A]
  6. 其他重要的包依赖它吗?[b]
  7. 该软件包是否有详细记录并有自己的网站?
  8. 该模块有测试覆盖率吗?

Github 因素: 更新:从 npm 1.2.20 及更高版本开始,没有存储库字段的模块将显示缺少存储库字段的警告。(很好的做法,给人们施加一点压力,让他们正确打包他们的模块。)

  1. 货叉数量
  2. 提交次数
  3. github 上的问题是否已关闭,或者相同的问题是否已开放很长时间?

[a] 加星标的示例

https://npmjs.org/~tjholowaychuk

[b] 从终端快速查看:

npm view <name_of_module> dependencies

例子: npm view connect dependencies

https://npmjs.org/browse/dependent

注意事项:

受欢迎并不意味着优秀。有很多不受欢迎的模块确实很好。

“最后更新”不准确。NPM 可能显示该模块已于 2 年前更新,但 github 已于上周更新。如果维护者没有在 github 上的代码更改时更新版本号,就会发生这种情况。