刚开始学前端开发的时候,一直搞不懂package是什么意思,只知道项目里到处都能看到这个单词,踩了超多基础坑。
最开始写简单代码,只用单独的js文件,完全不需要接触任何打包工具。直到第一次接手小组作业项目,文件夹里代码越写越乱,几十份功能代码堆在一起,找一个接口文件都要翻半天。
package就是用来收纳、归类、打包各类代码资源的程序包,这是折腾好久才搞明白的基础事实。
package在本地项目的实际作用
当初最蠢的操作,就是手动复制粘贴复用代码,把写好的工具函数一个个拷贝到新文件里。结果就是代码冗余超多,一处改错,所有复制过的文件都要挨个修改,返工率高到离谱。
后来跟着教程操作,才知道项目里的package可以封装固定功能,把通用的工具方法、组件、接口统一整合起来,不用反复写重复代码。本地开发中,每一个独立的package,都对应一套完整、可复用的功能模块,能直接引入项目调用。
很多新手分不清package和普通文件夹,其实差别特别明显。普通文件夹只是单纯存放文件,没有任何程序识别属性,而package是被开发工具认可的结构化包,自带配置信息,支持安装、引入、更新和卸载,是规范化的代码集合。
package在npm平台的使用体验
接触npm之后,才真正摸清package的核心用法。网上所有开源的开发工具、插件、功能模块,本质上都是一个个公开的package。
之前写表单校验功能,自己手写几十行代码还容易出bug,报错找不到原因。后来直接安装现成的校验package,三行代码就能实现完整校验功能,效率直接翻倍。
这里踩过一个致命的坑,随便下载版本过旧的package,导致项目依赖冲突,整个项目直接跑不起来。折腾了一整晚,卸载旧版本、适配对应依赖版本,才勉强修复问题。也是这次出错才记住,使用线上package必须匹配自己项目的开发环境版本。
小项目不用乱装package。
多余的包只会增加项目体积,拖慢启动和打包速度,很多基础功能原生代码就能实现,没必要过度依赖第三方package。
上次调试完项目,凌晨两点关掉编辑器,桌面还摊着记满依赖版本的草稿纸,满脑子都是各种package的适配规则。