多页面项目,如何做到webpack 增量打包(只打包本次修改的文件)

2,061 阅读2分钟
  • 前因 一般情况下 随着项目体积的增大,打包的速度也会增大,全量打包的话会导致时间过长,所以我们需要只打包本次修改的文件

了解md5

md5 是一种基础加密方式,在这里他最大的好处就是,只有文件内容发生改变时,才会生成新的md5戳,不修改的话每次生成的都是一样的

node crypto、fs模块

  1. fs.readFileSync(“文件”) 可读取文件内容
  2. node 自带了crypto 加密模块,可使用 crypto.createHash("md5"),可生成md5戳
  3. 由于多页面项目相对比较独立,所以生成的md5戳会比较多,比较起来比较麻烦,此时可对单个项目生成的md5文件整合再进行一次md5的加密
  4. 此时生成的md5戳,可以和上次打包的md5 进行比较,如果发生改变则证明该项目进行了修改,只对这个项目进行打包即可

优化commom 模块的打包

之前是发现common模块内有文件修改了,为了防止页面未能及时更新所以打包是进行全量打包,避免了上述问题,但是也增加了很多无用的打包,所以进行优化。
  1. 现在打包时,发现common模块内的components 文件进行修改时,读取修改文件的路径
  2. 遍历所有项目的 .vue 文件和 index.js 文件,观察他们是否引用了对应的公共组件进行标记,生成引用的list
  3. 读取此次打包修改的项目,进行合并、压缩

好处

增量打包更新大大提升了项目的打包速度,也不必为了未修改的文件而进行打包,避免了 随着项目的增大打包时间过长的问题