微信小程序提示 “Error: 代碼包大小爲 2491 kb,上限爲 2048 kb請刪除文件後重試”

遇到情況:

預覽小程序時,提示 “Error: 代碼包大小爲 2491 kb,上限爲 2048 kb請刪除文件後重試”

看了一下官方說明如下:

目前小程序分包大小有以下限制:

 

解決方案:

對小程序進行分包,可以優化小程序首次啓動的下載時間,以及在多團隊共同開發時可以更好的解耦協作。在小程序啓動時,默認會下載主包並啓動主包內頁面,當用戶進入分包內某個頁面時,客戶端會把對應分包下載下來,下載完成後再進行展示。

總結如下:

  • 打開小程序,默認先加載主包

  • 進入分包頁面時,再加載對應分包

    這樣的好處是進入主包頁面時,需要下載的代碼量小了很多,白屏時間更短,體驗更佳。

 分包的方法:

假設支持分包的小程序目錄結構如下:

├── app.js
├── app.json
├── app.wxss
├── packageA
│   └── pages
│       ├── cat
│       └── dog
├── packageB
│   └── pages
│       ├── apple
│       └── banana
├── pages
│   ├── index
│   └── logs
└── utils

開發者通過在 app.json subpackages 字段聲明項目分包結構:

{
  "pages":[
    "pages/index",
    "pages/logs"
  ],
  "subpackages": [
    {
      "root": "packageA",
      "pages": [
        "pages/cat",
        "pages/dog"
      ]
    }, {
      "root": "packageB",
      "name": "pack2",
      "pages": [
        "pages/apple",
        "pages/banana"
      ]
    }
  ]
}

subpackages 中,每個分包的配置有以下幾項:

字段 類型 說明
root String 分包根目錄
name String 分包別名,分包預下載時可以使用
pages StringArray 分包頁面路徑,相對與分包根目錄
independent Boolean 分包是否是獨立分包

打包原則

  • 聲明 subpackages 後,將按 subpackages 配置路徑進行打包,subpackages 配置路徑外的目錄將被打包到 app(主包) 中
  • app(主包)也可以有自己的 pages(即最外層的 pages 字段)
  • subpackage 的根目錄不能是另外一個 subpackage 內的子目錄
  • tabBar 頁面必須在 app(主包)內

引用原則

  • packageA 無法 require packageB JS 文件,但可以 require app、自己 package 內的 JS 文件
  • packageA 無法 import packageB 的 template,但可以 require app、自己 package 內的 template
  • packageA 無法使用 packageB 的資源,但可以使用 app、自己 package 內的資源

低版本兼容

由微信後臺編譯來處理舊版本客戶端的兼容,後臺會編譯兩份代碼包,一份是分包後代碼,另外一份是整包的兼容代碼。 新客戶端用分包,老客戶端還是用的整包,完整包會把各個 subpackage 裏面的路徑放到 pages 中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章