egret之分包加载学习笔记

本文记录了使用Egret进行微信小游戏的分包加载过程,包括将subpackage.ts导入项目、修改config.wxgame.ts以使用SubPackagePlugin、配置CleanPlugin删除subpackage目录、拷贝EgretSubpackageLoading.js到小游戏项目,并在game.json和game.js中进行相应的配置以实现分包加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 将 scripts/wxgame/subpackage.ts 拷贝进您的项目
  • https://github.com/himuil/subPackageDemo 下载链接
  • 修改 config.wxgame.ts,将 ManifestPlugin 替换为 SubPackagePlugin (注意,您需要修改 build 和 publish)
  • 1.引入文件
  • 2.build处修改
  • 3.publish处修改
  • 修改 config.wxgame.ts 中的 CleanPlugin,将 subpackage 对应的目录清除
  • 1.build和publish处都做修改
  • 将示例项目的 EgretSubpackageLoading.js 拷贝进您的微信小游戏项目
  • 修改微信小游戏项目的 game.json,参考示例项目,引入 subpackages 属性
  • 修改微信小游戏项目的 game.js,参考示例项目,重点是添加调用 wx.loadSubPackage 的逻辑
  • require('./weapp-adapter.js');
    require('./platform.js');
    require('./manifest.js');
    require('./egret.wxgame.js');
    
    let runOptions = {
      //以下为自动修改,请勿修改
      //The following is automatically modified, please do not modify
      //----auto option start----
    		entryClassName: "Main",
    		orientation: "auto",
    		frameRate: 30,
    		scaleMode: "fixedWidth",
    		contentWidth: 640,
    		contentHeight: 1136,
    		showFPS: false,
    		fpsStyles: "x:0,y:0,size:12,textColor:0xffffff,bgAlpha:0.9",
    		showLog: false,
    		maxTouches: 2,
    		//----auto option end----
      audioType: 0,
      calculateCanvasScaleFactor: function (context) {
        var backingStore = context.backingStorePixelRatio ||
          context.webkitBackingStorePixelRatio ||
          context.mozBackingStorePixelRatio ||
          context.msBackingStorePixelRatio ||
          context.oBackingStorePixelRatio ||
          context.backingStorePixelRatio || 1;
        return (window.devicePixelRatio || 1) / backingStore;
      }
    };
    
    const runEgret = function () {
      egret.runEgret(runOptions);
    }
    
    if (wx.loadSubpackage) {
      require("./EgretSubPackageLoading.js");
      runOptions.entryClassName = "EgretSubPackageLoading";
      runEgret();
      let task = wx.loadSubpackage({
        // 开发者根据自身需求更改
        name: "stage1",
        success: function () {
          EgretSubPackageLoading.instance.onSuccess();
        }
      });
    
      task.onProgressUpdate(res => {
        EgretSubPackageLoading.instance.setProgress(res);
      })
    }
    else {
      //
      require("./stage1/game.js");
      runEgret();
    }

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值