le_
le_
  • 发布:2019-11-12 13:53
  • 更新:2024-12-04 16:46
  • 阅读:10926

打包微信小程序时,所欲分包页面的 js,会被打包到主包的 vendor.js 中导致文件过大

分类:uni-app

详细问题描述

[内容] 如题,uniapp 在进行微信小程序打包时,会将分包页面引入的 js 打包到主包的 vendor.js 中。
页面较多时,主包文件大小会超过 2M 的限制。
vendor.js 文件会超过 500k 也会影响 ES6 转 ES5 等问题。

uni-app运行环境说明

[编译模式是老模板模式还是新的自定义组件模式?] 自定义组件模式

联系方式

[QQ] 380914334

2019-11-12 13:53 负责人:无 分享
已邀请:

最佳回复

DCloud_UNI_GSQ

DCloud_UNI_GSQ

可以采用压缩和拆分,可以单独采用或者同时进行
压缩:pacakge.json中添加参数--minimize

"dev:mp-weixin": "cross-env NODE_ENV=development ZHICHI_ENV=develop UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch --minimize"

拆分:manifest.json中增加参数subPackages

"mp-weixin": {  
        "appid": "",  
        "permission": {  
            "scope.userLocation": {  
                "desc": "你的位置信息将用于地理位置展示与距离计算"  
            }  
        },  
        "setting": {  
            "urlCheck": false  
        },  
        "usingComponents": true,  
        "optimization": {  
            "subPackages": true  
        }  
    }
  • le_ (作者)

    试了一下是可以的,希望快更新到官方文档里,更新日志里也没有看到有相关功能说明

    2019-11-12 18:37

  • s***@qq.com

    ZHICHI_ENV 这个参数是什么意思?可以另外增加一个环境变量吗?

    2019-12-23 16:14

  • DCloud_UNI_GSQ

    回复 s***@qq.com: 这是人家项目自己定义的,你可以和他交流一下。

    2019-12-23 17:13

  • s***@qq.com

    回复 DCloud_UNI_GSQ: 好的,谢谢。我是想法是可以在dev时候把map文件去掉,这样就小很多了。不清楚有没有这样的参数

    2019-12-23 17:25

  • DCloud_UNI_GSQ

    回复 s***@qq.com: 不必,map文件本身也不上传

    2019-12-23 17:49

le_

le_ (作者)

官方有提供配置可以操作拆分 vendor.js 吗?或者其他方案把对应的分包代码放到分包里。

44596296

44596296

你们那个vendor简直了,为什么有这个么一个玩意,他会把所有引入的js文件在全部写进去,但是外围的文件也不删除,看不懂这个操作,这样打包的出来的体积肯定是双倍的啊,这个能解释一下么

  • z***@126.com

    有没解决?没解决我告诉你怎么解决

    2022-03-30 11:27

  • ecko

    回复 z***@126.com: 怎么解决?大佬 我分包优化后vendor包还是太大

    2022-08-17 10:29

  • 2***@qq.com

    回复 ecko: 请问解决了吗

    2022-10-03 11:27

  • ecko

    回复 2***@qq.com: 没解决 emmm 其他同事正常 我提交代码让他们部署

    2022-10-17 17:35

  • 6***@qq.com

    回复 z***@126.com: 怎么解决? 解决了吗?

    2023-09-05 10:27

  • c***@163.com

    回复 z***@126.com: 现在还有这个问题

    2024-08-19 17:20

奥山

奥山

分包的时候, root里面不能写成 "root": "messagePack/",
要写成下面这个样子

{  
      "root": "messagePack",  
      "pages": [  
        {  
          "path": "pages/messageCenter/index",  
          "style": {  
            "navigationBarTitleText": "消息中心",  
            "navigationStyle": "custom",  
            "pageOrientation": "portrait",  
            "navigationBarBackgroundColor": "#000000",  
            "navigationBarTextStyle": "white"  
          }  
        }  
      ]  
    },
DCloud_UNI_CHB

DCloud_UNI_CHB

超过500k,不影响预览

  • le_ (作者)

    嗯嗯,但是页面多了,主包大小还是会超过限制

    2019-11-12 17:22

w***@gmail.com

w***@gmail.com

希望官方更新

tomzhao

tomzhao

试了下webpack拆包,h5生效,小程序还是只生成vendor.js一个包

itmonkey

itmonkey - 程序汪

包太大了

270315475

270315475 - 团队接单,承接各类大型项目开发,QQ:270315475

我配置了 打包还是那样 为什么?

44596296

44596296

分包还是超过2m,怎么办

菜汤不甜

菜汤不甜

添加
"optimization" : {
"subPackages" : true
}
之后, 直接打包失败,删除语句之后又能打包。。。

  • lucky_mi

    解决了吗?我这也是这样用不了这个

    2023-05-04 11:44

  • 菜汤不甜

    回复 lucky_mi: 没用这个了,我后来把部分,分包的组件,放分包的文件夹,好像是主包调用到的目录,都算主包

    2024-05-15 11:56

  • 2***@qq.com

    添加了也不起作用,有人解决了吗

    2024-08-27 10:34

1***@qq.com

1***@qq.com

有解决了的大佬吗

  • 蔡cai

    运行---->运行到小程序模拟器---->运行时是否压缩代码;这个选项给它勾选上

    2024-12-04 16:58

要回复问题请先登录注册