1. Ограничения мини-программ на пакеты кода
В обычных условиях при первом запуске апплета загружается весь пакет кода, поэтому, если пакет кода слишком велик, это повлияет на время первого запуска апплета. Поэтому у апплета официально есть ограничение на размер пакета кода.
1.1 Ограничения мини-программ
- При нормальных обстоятельствах ограничение пакета кода апплета: размер не превышает 2M, если размер превышает этот размер, его нельзя просмотреть и код нельзя загрузить.
- В случае подпакетной загрузки ограничение составляет: размер каждого пакета не превышает 2M, а общий размер всех пакетов не превышает 16M.
1.2 Как проверить размер пакета кода
Нажмите в правом верхнем углу инструмента разработчика WeChat — Подробности, внизу вы увидите размер пакета кода, включая размер пакета локального кода, размер пакета кода последнего предварительного просмотра и размер пакета последнего загруженного кода:
Если субподряд настроен, щелкните стрелку раскрывающегося списка, чтобы увидеть размер каждого субподряда:
2. Как решить проблему, что пакет кода слишком велик
2.1 Загрузка подпакета
Загрузка подпакетов — это решение, официально предоставленное WeChat.Вся идея заключается в следующем:Разделите код на разные пакеты, откройте определенную страницу в пакете и загрузите код этого пакета, чтобы оптимизировать время загрузки при первом запуске апплета.
Есть несколько моментов, на которые следует обратить внимание в отношении субподряда:
- Используйте подпакеты для объявления пути к подпакету, и каталоги за пределами пути конфигурации подпакетов будут упакованы в основной пакет.
- Путь, настроенный в tabBar, должен быть помещен в основной пакет.
- Ресурсы между разными подпакетами не могут ссылаться друг на друга, но могут ссылаться на ресурсы в основном пакете.
2.2 Хранение статических ресурсов на сервере
Например, ресурсы изображений, используемые в проекте, хранятся на платформе изображений или на выделенном сервере статических ресурсов, чтобы уменьшить пространство, занимаемое пакетом кода. Этот метод выходит за рамки обсуждения в этой статье, поэтому я пока не буду вдаваться в подробности.
В-третьих, операция под нагрузкой твердого тела
Ниже приведен пример субподряда:
3.1 Разделите страницы проекта по определенной логике
Этот шаг можно разделить по бизнес-логике проекта или по частоте использования разных страниц. В этом примере страницы, отличные от tabBar, напрямую разделены на подпакеты:
// tabBar(放入主包)
"pages/index/index",
"pages/logs/logs"
// packageA(分包)
"pages/parent/parent",
"pages/child/child"
3.2 Настройте путь в app.json
Настройте свойство подпакетов, значением которого является массив. Каждый объект в массиве является подпакетом. В каждом подпакете необходимо настроить несколько свойств:
- root: корневой путь этого подпакета
- Страницы: путь к странице в этом подпакете, где путь к странице является относительным путем к корневому пути подпакета.
{
"pages": [
"pages/index/index",
"pages/logs/logs"
],
"subpackages": [
{
"root": "pages/packageA",
"pages": [
"child/child",
"parent/parent"
]
}
],
}
3.3 После сохранения страницы сгенерируйте соответствующий каталог файлов
После настройки файла app.json и его сохранения вы обнаружите, что соответствующий каталог создается автоматически, как показано ниже:
Следует отметить, что во вновь созданном каталоге файлы находятся в состоянии инициализации, но родительский и дочерний файлы исходного пути все еще существуют, и код необходимо мигрировать вручную.
3.4 Перенесите соответствующий код во вновь созданный каталог файлов
На этом шаге перенесите код файла исходного пути во вновь созданный каталог и удалите файлы исходного пути.
3.5 Изменение путей, используемых в проекте
На данный момент, по сути, субподряд настроен, но остается решить одну проблему: Измените ссылочный путь в проекте, например: Исходный ссылочный путь выглядит так
gotoChild() {
wx.navigateTo({
url: '/pages/child/child',
})
}
Необходимо изменить на последний путь:
gotoChild() {
wx.navigateTo({
url: '/pages/packageA/child/child',
})
}
Мы фронтенд-программист + фронтенд-программист от Imperial Capital.
Публикуемые здесь статьи представляют собой резюме того, что мы узнали, и ожидается, что они будут обновляться не реже одного раза в неделю.
Наш текущий учебный план:Малый программный бой => расширенное использование vue => принцип vue => основы css => es6 => углубленное изучение js
Кроме того, мы также со временем подведем итоги и обновим некоторые технологии и реализованные функции, используемые в работе.
Если статья неверна или выражение непонятно, оставьте сообщение и отзыв~~