uniapp针对微信小程序页面的自动化生成分包

uniapp开发的手机端应用,有些时候,需要开发微信小程序,而微信小程序有分包大小的限制,而若是uniapp本来应用的pages很多,如果手动一个一个分包,就不好了,所以我们就写了一个根据pages/folder进行分包,来简化开发流程和效率。

代码

/*
分包转换
*/
function pagesTransSubPackages(pages){
	let SubPackages = [];
	let node = {"root":"","pages":[]};
	let page = {"path":"","style":{}};
	let dict = new Map();let pos = 0;
	
	for(let single of pages){
		let paths = single.path.split('/')
		
		node.root = paths.slice(0,2).join('/');

		if(dict.has(node.root)){
			
			page.path = paths.slice(2).join('/');
				
			page.style = single.style;
			
			SubPackages[dict.get(node.root)].pages.push(page);
			
		}else{
			
			dict.set(node.root,pos);
			
			page.path = paths.slice(2).join('/');
				
			page.style = single.style
			
			node.pages.push(page)
			
			SubPackages.push(node);
			
			pos++
			
		}
		// reset data
		node = {"root":"","pages":[]};
		page = {"path":"","style":{}};
		
	}
	return SubPackages;
}

/**
 * 1、去pages.json挑选出全部pages数组替换到pages变量
 * 2、node pagesTransSubPackages.js文件输出的json在https://uutool.cn/nl-trim-all/网站上去掉所有换行
 * 3、替换到原来pages.json的SubPackages的数组
 * 4、将首屏需要加载的包从pages.json的SubPackages的数组中删掉
 * 5、愉快的运行微信小程序
 */
let pages = [{
			"path": "pages/index/index",
			"style": {
				"navigationBarTitleText": "首页",
				"navigationStyle": "custom",
				"app-plus" : {
				    // "statusbar": {  
				    //     "immersed": false  
				    // }
				}
			}
		},
		{
			"path": "pages/classify/classify",
			"style": {
				"navigationBarTitleText": "分类",
				"navigationStyle": "custom"
			}
		},
		{
			"path": "pages/straight/straight",
			"style": {
				"navigationBarTitleText": "找医护",
				"navigationStyle": "custom",
				"app-plus" : {
				    // "statusbar": {  
				    //     "immersed": false  
				    // }
				}
			}
		},
		{
			"path": "pages/webUrl/index",
			"style": {
				"navigationBarTitleText": "外部链接",
				"navigationStyle": "custom"
			}
		}]
		
console.info(JSON.stringify(pagesTransSubPackages(pages)));

1、去pages.json挑选出全部pages数组替换到pages变量
2、node pagesTransSubPackages.js文件输出的json在https://uutool.cn/nl-trim-all/网站上去掉所有换行
3、替换到原来pages.json的SubPackages的数组
4、将首屏需要加载的包从pages.json的SubPackages的数组中删掉
5、愉快的运行微信小程序

  • 本代码旨在优化微信小程序的首屏加载的分包效率,不喜勿喷。
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值