当前位置: 欣欣网 > 码农

以后安装 NPM 包,可不能随便安装了!

2024-02-18码农

模拟面试、简历指导、入职指导、项目指导、答疑解惑 可私信找我~已帮助100+名同学完成改造!

前言


大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心~

平时我们在写代码的时候,有时候有一些功能比较难实现,或者市面上已经有现成的库,那么我相信很多人会毫不犹豫地去安装这个包,并投入到开发中去使用~

但是其实这样是不对的,为了保证项目的 健壮性、可维护性、可持续性 ,建议大家在安装一个包的时候,一定要先经过一定的 评估 ,并且这个 评估 是多方面的,分别是:

  • 特性是啥

  • 稳定性如何

  • 性能如何

  • 生态、社区、文档

  • 学习成本高不高

  • 兼容性怎么样

  • 趋势如何

  • 了解库的特性

    第一点肯定是要了解你所安装的包有哪些特性,是否真的符合你的项目需要,就比如我用 Vue 来开发页面,是因为使用它的响应式来开发页面非常方便,分离了视图层和数据层,代码可维护性更高

    或者比如 lodash 这样的的工具库,完全就是为了每一个项目而生的,使用率非常高

    在选库的时候一定要了解库的特性,了解一下: 这个库是否能完美解决你的需求?这个库是否功能过剩?如果功能过剩的话是否需要换另一个更简洁的库?

    库的稳定性如何?

    一个库的稳定性是非常重要的,这也关系到你项目的稳定性,你总不会想要给你的项目埋一颗定时炸弹吧?

    一个经常出 BUG 的库是不能出现在生产环境的,所以选了一个库之后,最好能好好调研下这个库的稳定性,多测试测试

    库的性能怎么样?

    为什么大佬们选库的时候都会选体积更小的库呢?或者支不支持 tree-shaking 呢?那是因为体积越小,说明页面运行的速度更快。

    你觉得这个库很牛逼,但是用了它,页面加载多了 5s ,那这个库就是垃圾,需要马上换掉,这就不是一个符合你们项目的库

    生态如何?

    一个库的生态包括很多方面:

  • 文档齐不齐全: 文档是这个库的说明书,所以文档是很重要的,这决定了你能不能最大发挥这个库的功能

  • 社区活不活跃: 社区活不活跃,决定了在使用这个库的时候可以少踩一些坑,因为社区活跃说明你的坑,很多人都踩过了

  • 对应的周边库多不多: 就比如 Vue 配套了 router、vuex、pinia 等等,让你在使用这个库的时候,能更好地、按需地,去拓展你想要的项目需求

  • 学习成本

    使用一个库,学习成本可太重要了,毕竟学习是需要时间的,而时间就是金钱啊

    我觉得有一句话挺有道理的: 开发一个库的第一要素,就是要让使用者能无脑地去使用

    拿 Vue 来举例子,前端程序员,稍微有点基础的,差不多几天就能上手 Vue,并利用 Vue 去开发一些简单的页面,所以 Vue 的学习成本是很低的,这也是它能爆火的原因

    反观 JSX 又很多人觉得用起来不够无脑,维护起来也麻烦,所以很多项目都放弃使用 JSX

    所以在调研的时候,一定要看这个库的上手难易程度如何,在某些场景最好是能做到 无缝衔接

    兼容性怎么样?

    先不说库了,就是你在使用一个 JavaScript 或者 CSS 的 API 时,你也得上 MDN 查查这个 API 的兼容性如何

    而 NPM 库 肯定底层是依赖 JavaScript、CSS 的,所以这些库肯定也是有兼容性问题的

    比如 Vue 就不兼容 IE,因为很多比较新的 JavaScript API 都不兼容 IE 浏览器,所以也导致了 Vue 不兼容 IE 浏览器

    所以在用一个库的时候一定要调研一下兼容性,或者说能不能通过某些措施,让这个库具备比较好的兼容性

    结语

    我是林三心

  • 一个待过 小型toG型外包公司、大型外包公司、小公司、潜力型创业公司、大公司 的作死型前端选手;

  • 一个偏前端的全干工程师;

  • 一个不正经的掘金作者;

  • 逗比的B站up主;

  • 不帅的小红书博主;

  • 喜欢打铁的篮球菜鸟;

  • 喜欢历史的乏味少年;

  • 喜欢rap的五音不全弱鸡如果你想一起学习前端,一起摸鱼,一起研究简历优化,一起研究面试进步,一起交流历史音乐篮球rap,可以来俺的摸鱼学习群哈哈,点这个,有7000多名前端小伙伴在等着一起学习哦 -->

  • 广州的兄弟可以约饭哦,或者约球~我负责打铁,你负责进球,谢谢~