问题起源

  1. 最近在做一个技术调研, 微信小程序原生跟uni-app的混合开发. uni-app打包后的页面作为子包引入进去小程序的时候, 看了下代码依赖分析, 无意间发现了主包达2.03M了, 简直很快就要超过主包的限制了, 如下图。<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/1607809/1656593145659-e4710e98-b2b4-4ac3-bf41-14bd9215171b.png#clientId=u539938c1-945f-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=70&id=ubcb01e58&margin=%5Bobject%20Object%5D&name=image.png&originHeight=175&originWidth=504&originalType=binary&ratio=1&rotation=0&showTitle=false&size=21103&status=done&style=none&taskId=u9efa02a8-2d8a-419f-a821-0706c4ed0bc&title=&width=201.6)<br /> 这里研究下微信开发者工具的代码依赖分析,故有了此文章。

主包里有什么?

微信开发者工具会把非分包的内容都算在主包里面。

  1. 我们先看下主包都有哪些东西, 其中有一个文件特别显眼: package-lock.json, 竟然有159KB哦。我们知道在git提交代码的时候, 该文件是可配置忽略的。<br />那么在代码依赖分析的时候, 该文件有没办法配置忽略呢? 答案肯定是OK的.<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/1607809/1656593234111-473b3fd8-f94b-4624-8589-2b01b47e777a.png#clientId=u539938c1-945f-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=62&id=u2b3cced5&margin=%5Bobject%20Object%5D&name=image.png&originHeight=155&originWidth=1467&originalType=binary&ratio=1&rotation=0&showTitle=false&size=29040&status=done&style=none&taskId=ue1a56016-872e-4b1d-b5c4-96241b5c54d&title=&width=586.8)<br />感兴趣可戳此查看详情: [项目配置文件](https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html#packOptions)

如何忽略某些文件?

  • 修改项目根目录下的project.private.config.json文件

    1. // 精准忽略某一文件
    2. "packOptions": {
    3. "ignore": [
    4. {
    5. "value": "package-lock.json",
    6. "type": "file"
    7. }
    8. ],
    9. "include": []
    10. }
  • 刷新下代码依赖分析,我们查看下效果:
    你会发现从总的体积包来看, 6.92M-6.77M, 说明是屏蔽了package.json文件的. 同时你可以看到下面的主包分析是找不到package-lock.json占比了的,再次说明是ok了的。
    image.png