例如上面两张图,来自于roadhog。 实际上,看到引用这些依赖的时候,我完全是不清楚的,引入的这些是干嘛用的。这个时候我会百度一下或者上 npmjs.com
上查看一下说明和用法。不过很多项目的依赖,有时候感觉直接原生node写就行了啊,或者有些功能雷同的包也不知道选择哪一个。
举个例子 rimraf
这个库是以包的形式包装rm -rf命令,用来删除文件和文件夹的,不管文件夹是否为空,都可删除。但如果是平时我们删除文件,一般都会考虑rmdirSync
和unlink
之类的方法吧?我想说的是,我压根不知道删除文件的功能也有现成的库能用了啊。
我想问,对于我们一般自己写nodejs应用的时候,怎么选择适合自己的依赖? 或者什么时候该优先考虑自己将逻辑实现而不是优先去npm上找别人封装的包?
新手,求大佬们解答。@i5ting
类似的还有很多,比如shelljs
这可以分一个阶段
- 能用,初学时,能搞定问题就行,至于模块质量和原理有精力再研究
- 够用,模块玩的多了,慢慢会介意包大小,明明我只要一个mkdirp,shelljs非给我一大堆命令,不会选。
- 造轮子,rework一书里讲,挖自己的痒,如果不喜欢就自己写一个,当然别忘了dry原则
无论哪种,其实都是practice makes perfect,分享二篇我写的相关文章,希望对你有用
@i5ting 感谢狼叔
如果功能简单的几行代码,没必要依赖第三方库。 复杂功能或维护成本高的功能,应该优先选用第三方开源方案,因为一个活跃的开发社区对质量保障非常重要。 至于,面对很多功能雷同的库该如何选择,可以通过对比参考github上的star/issue数量查看社区活跃度,通过npm下载量对比可以看到开源库的流行度,另外,有领域大佬背书和参与的质量也值得信赖。 这里有个小工具可以查看和对比npm下载量。
来自✨ Node.js开源项目精选✨