# 代码包

## 版本类型

代码包分为 **开发版**、**体验版**、**正式版** 三种：

- **开发版**：每个开发者在开发过程中点击“预览”生成的版本，每个小游戏可以有多个开发版，对于每个开发者本地只能有一个开发版；开发版代码包只能通过扫码获得；
- **体验版**：通过在管理后台将特定开发版设置成体验版得到的版本，每个小游戏只能有一个体验版；
- **正式版**：正式发布在线上的版本，每个小游戏只能有一个正式版；

## 包大小限制

代码包总大小不能超过 30M，单个分包不限制大小，主包不超过 4M。关于分包更多信息，可以参考 [分包加载](subPackage/useSubPackage)。

## 缓存与清理机制

代码包下载到客户端后会被缓存起来，以便于下次离线打开。代码包清理的时机由算法动态计算，但可以认为在手机存储空间足够的情况下，代码包都不会被主动清理。
主动清理：

- 用户主动在历史列表删除小游戏（下拉任务栏删除不算）时，代码包会被清理。
- 用户在设置-通用-存储空间，可以清除缓存。

## 文件类型

在项目目录中，以下文件会经过编译，因此上传之后无法直接访问到：\*.js、game.json。除此之外，只有后缀名在白名单内的文件可以被上传，不在白名单列表内文件在开发工具能被访问到，但无法被上传。具体白名单列表如下：

1. png
1. jpg
1. jpeg
1. gif
1. svg
1. js
1. json
1. cer
1. obj
1. dae
1. fbx
1. mtl
1. stl
1. 3ds
1. mp3
1. pvr
1. wav
1. plist
1. ttf
1. fnt
1. gz
1. ccz
1. m4a
1. mp4
1. bmp
1. atlas
1. swf
1. ani
1. part
1. proto
1. bin
1. sk
1. mipmaps
1. txt
1. zip
1. tt
1. map
1. ogg
1. silk
1. dbbin
1. dbmv
1. etc
1. lmat
1. lm
1. ls
1. lh
1. lani
1. lav
1. lsani
1. ltc
1. aac
1. astc
1. br
1. csv
1. cur
1. dat
1. dds
1. glb
1. gltf
1. ico
1. ktx
1. lmani
1. lml
1. pkm
1. prefab
1. scene
1. skel
1. wasm
1. xml
