Implementación de Subpaquetes Estándar e Independientes en WeChat Mini Programs

Arquitectura de Subpaquetes en WeChat Mini Programs

La arquitectura de un Mini Program de WeChat se divide fundamentalmente en un paquete principal y múltiples subpaquetes. Esta división es crucial para optimizar el rendimiento y gestionar los límites de tamaño impuestos por la plataforma.

  • Paquete Principal: Alberga las páginas de inicio, las configuraciones de la barra de pestañas (tabBar) y los recursos compartidos que son requeridos por todos los subpaquetes.
  • Subpaquetes: Contienen exclusivamente las páginas y recursos privados asociados a una sección específica de la aplicación.

Restricciones de Tamaño:

  • El tamaño total de la aplicación (paquete principal más todos los subpaquetes) no debe exceder los 16 MB.
  • El tamaño individual de cada paquete (ya sea principal o subpaquete) está limitado a un máximo de 2 MB.

Configuración de Subpaquetes Estándar

Para habilitar esta funcionalidad, se debe modificar el archivo app.json defineindo la estructura dentro del nodo subPackages. El tamaño resultante de cada subpaquete puede verificarse en el panel de detalles del compilador, dentro de la sección de información básica del código local.

/* 
  Configuración de subpaquetes:
  - root: Directorio base del subpaquete.
  - pages: Rutas relativas de las páginas dentro de este subpaquete.
  - name: Identificador único o alias del subpaquete.
  - independent: Bandera para definir si es un subpaquete independiente.
*/
{
  "subPackages": [
    {
      "root": "moduleA",
      "name": "aliasA",
      "pages": [
        "views/dashboard/dashboard",
        "views/settings/settings"
      ]
    },
    {
      "root": "moduleB",
      "name": "aliasB",
      "independent": true,
      "pages": [
        "views/profile/profile"
      ]
    }
  ]
}

Principios de Empaquetado y Referencias

El compilador distribuirá los archivos basándose en la configuración de subPackages. Cualquier directorio no declarado explícitamente en este nodo será incorporado al paquete principal.

  • El paquete principal puede definir sus propias páginas en el nodo raíz pages.
  • Las páginas configuradas en el tabBar deben residir obligatoriamente en el paquete principal.
  • Los subpaquetes no pueden anidarse entre sí.

Reglas de Importación de Recursos:

  • El paquete principal no puede importar recursos privados de ningún subpaquete.
  • Los subpaquetes no pueden compartir ni importar recursos privados entre ellos.
  • Los subpaquetes estándar sí tienen permitido importar recursos públicos ubicados en el paquete principal.

Subpaquetes Independientes

Un subpaquete independiente es una variante especial que puede ejecutarce de forma autónoma, sin necesidad de que el paquete principal esté presente o descargado.

Diferencias y Casos de Uso

La distinción clave radica en la dependencia del paquete principal. Mientras que un subpaquete estándar requiere la descarga previa del paquete principal para funcionar, el independiente opera de manera aislada. Esto es particularmente útil para funcionalidades modulares o páginas de destino donde la velocidad de carga inicial es crítica, ya que elimina la latencia asociada a la descarga del paquete principal.

Para activar esta modalidad, simplemente se establece la propiedad "independent": true en la configuración del subpaquete correspondiente, como se mostró en el ejemplo de moduleB.

Aislamiento de Recursos

El principio de aislamiento es estricto en los subpaquetes independientes:

  • Existe una separación total de recursos entre el paquete principal, los subpaquetes estándar y los independientes.
  • Un subpaquete independiente no puede importar recursos públicos del paquete principal (a diferencia de los subpaquetes estándar).
  • No se permiten referencias cruzadas de recursos privados entre diferentes subpaquetes independientes, ni entre independientes y estándar.

Precarga de Subpaquetes (Preload)

La precarga permite que el framework descargue automáticamente subpaquetes específicos en segundo plano mientras el usuario interactúa con una página determinada, mejorando significativamente la transición hacia las páginas del subpaquete precargado.

Este comportamiento se configura en app.json mediante el nodo preloadRule.

/*
  Reglas de precarga:
  - network: Condición de red para ejecutar la descarga.
      - "all": Sin restricciones de red.
      - "wifi": Exclusivamente bajo conexión Wi-Fi (valor por defecto).
  - packages: Lista de subpaquetes a precargar (se puede usar 'root' o 'name').
*/
{
  "preloadRule": {
    "views/catalog/catalog": {
      "network": "wifi",
      "packages": ["moduleA", "aliasB"]
    }
  }
}

En este escenario, cuando el usuario navega a la página views/catalog/catalog, el sistema iniciará la descarga de moduleA (usando su ruta raíz) y aliasB (usando su nombre), siempre que se cumpla la condición de red especificada.

Etiquetas: WeChat Mini Programs subPackages app.json preloadRule independent subpackages

Publicado el 6-19 02:25