分包指的是把一个完整的小程序项目,按照需求划分为不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。
1、可以优化小程序首次启动的下载时间。(默认情况下不会进行分包,项目所有页面是打包到一起的,体积就比较大)。
2、在多人团队共同开发时可以更好的解耦协作。(不同功能划分成不同的分包,提高开发效率)。
分包后,小程序项目由1个主包 + 多个分包构成。
主包:一般只包含启动页面或他把bar页面、以及所有分包都会用到的一些公共的资源,例如:图片、js脚本、wxs脚本、wxss样式等。
分包:只包含和当前分包有关的页面和私有的资源。
在小程序启动时,默认会下载主包并启动主包内的页面,不会下载分包。tabBar相关的页面必须放到主包当中。
当用户进入分包内某个页面时,客户端会把对应的分包下载下来,下载完成之后进行展示。非tabBar页面可以按照功能的不同,划分为不同的分包之后,进行按需下载。
目前,小程序分包的大小有以下两个限制。
1、整个小程序所有分包大小不超过16M(主包 + 所有分包)。
2、单个分包/主包大小不能超过2M。
在app.json的subpackages节点中声明分包的结构,当分包的结构声明完成后,ctrl + s 保存,小程序会帮我们自动生成对应的目录文件。
{
"pages": [ // 主包的所有页面
"pages/index",
"pages/logs"
],
"subpackages": [
{
"root": "subPackageA", // 第一个分包的根目录
"name": //分包的别名(非必要字段)
"pages": [ //当前分包下,所有页面的相对存放路径
"pages/cat",
"pages/dog"
]
},
{
...第n个分包
}
]
}
微信开发者工具➡➡右上角详情➡➡基本信息➡➡本地代码

1、小程序会按照subpackages的配置进行分包,subpackages之外的目录将会被打包到主包中。
2、主包也可以有自己的pages(即最外层的pages字段)。
3、tabBar页面必须在主包中。
4、分包之间不能相互嵌套,即分包中不能嵌套分包。
独立分包本质上也是分包,只不过比较特殊的是,不需要依赖于主包,可以独立于主包和其它分包而单独运行。简单讲就是可以在不下载主包的情况下,独立运行。
当小程序从普通的分包页面启动时,不需要依赖于主包。
优点:可以很大程度上提升分包页面的启动速度。
注意:一个小程序中可以有多个独立分包。
{
"pages": [ // 主包的所有页面
"pages/index",
"pages/logs"
],
"subpackages": [
{
"root": "subPackageA", // 第一个分包的根目录
"name": 分包的别名(看自己要不要name字段)
"pages": [ //当前分包下,所有页面的相对存放路径
"pages/cat",
"pages/dog"
],
"independent": true //通过此节点,声明当前"subPackageA", 分包为“独立分包”。
},
{
...第n个分包
}
]
}
独立分包和普通分包以及主包之间,是相互隔绝的,不能相互引用彼此的资源。例如:
1、主包无法引用独立分包内的私有资源。
2、独立分包之间,不能相互引用私有资源。
3、独立分包和普通分包之间,不能相互引用私有资源。
4、特别注意:独立分包中不能引用主包内的公共资源。
分包预下载指的是:在进入小程序的某个页面时,由框架自动预下载可能需要的分包,从而提升进入后续分包页面时的启动速度。
{
"pages": [
"pages/home/home",
"pages/message/message",
"pages/contact/contact"
],
"preloadRule": { // 分包预下载的规则
"pages/contact/contact": { // 触发分包预下载的页面路径
//packages表示进入页面后,预下载哪些分包
//可以通过root 或 name 指定预下载哪些分包
"packages": ["p1"],
//network表示在指定的网络模式下进行预下载
可选值为: all(不限网络) 和 wifi(仅在wifi模式下进行预下载)
默认值为:wifi
"network": "all" //all表示无论什么网络模式,都会进行预下载
}
}
}
同一分包中的页面享有共同的预下载大小限制2M。(简单讲就是同一个分包里头所有页面加起来大小不能大于2M)。
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配
前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
@作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors 1、什么是behaviors 2、behaviors的工作方式 3、创建behavior 4、导入并使用behavior 5、behavior中所有可用的节点 6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors 1、什么是behaviorsbehaviors是小程序中,用于实现
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
我是ruby的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽
我想在IRB中浏览文件系统并让提示更改以反射(reflect)当前工作目录,但我不知道如何在每个命令后进行提示更新。最终,我想在日常工作中更多地使用IRB,让bash溜走。我在我的.irbrc中试过这个:require'fileutils'includeFileUtilsIRB.conf[:PROMPT][:CUSTOM]={:PROMPT_N=>"\e[1m:\e[m",:PROMPT_I=>"\e[1m#{pwd}>\e[m",:PROMPT_S=>"FOO",:PROMPT_C=>"\e[1m#{pwd}>\e[m",:RETURN=>""}IRB.conf[:PROMPT_MO