Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
Importación de módulos
En RunJS, puede utilizar dos tipos de módulos: módulos integrados (se acceden directamente a través de ctx.libs sin necesidad de importar) y módulos externos (se cargan bajo demanda mediante ctx.importAsync() o ctx.requireAsync()).
Módulos integrados - ctx.libs (No requiere importación)
RunJS incluye varias librerías integradas a las que se puede acceder directamente a través de ctx.libs. No es necesario utilizar import ni realizar una carga asíncrona para estas.
Ejemplo: React y antd
Ejemplo: ctx.libs.math
Ejemplo: ctx.libs.formula
Módulos externos
Cuando necesite librerías de terceros, elija el método de carga según el formato del módulo:
- Módulos ESM → Use
ctx.importAsync() - Módulos UMD/AMD → Use
ctx.requireAsync()
Importación de módulos ESM
Utilice ctx.importAsync() para cargar dinámicamente módulos ESM mediante una URL. Esto es adecuado para escenarios como bloques de JS, campos de JS y acciones de JS.
- url: Dirección del módulo ESM. Admite formatos abreviados como
<paquete>@<versión>o subrutas como<paquete>@<versión>/<ruta-del-archivo>(por ejemplo,vue@3.4.0,lodash@4/lodash.js). Se les añadirá el prefijo del CDN configurado. También se admiten URLs completas. - Devuelve: El objeto de espacio de nombres del módulo resuelto.
Por defecto: https://esm.sh
Si no se configura lo contrario, las formas abreviadas utilizarán https://esm.sh como prefijo del CDN. Por ejemplo:
Servicio esm.sh autohospedado
Si necesita utilizar una red interna o un CDN propio, puede desplegar un servicio compatible con el protocolo esm.sh y especificarlo mediante variables de entorno:
- ESM_CDN_BASE_URL: URL base del CDN de ESM (por defecto
https://esm.sh) - ESM_CDN_SUFFIX: Sufijo opcional (por ejemplo,
/+esmpara jsDelivr)
Para el autohospedaje, consulte: https://github.com/nocobase/esm-server
Importación de módulos UMD/AMD
Utilice ctx.requireAsync() para cargar de forma asíncrona módulos UMD/AMD o scripts que se adjuntan al objeto global.
- url: Admite dos formas:
- Ruta abreviada:
<paquete>@<versión>/<ruta-del-archivo>, similar actx.importAsync(), resuelta según la configuración actual del CDN de ESM. Al resolverla, se añade?rawpara solicitar directamente el archivo original (generalmente una compilación UMD). Por ejemplo,echarts@5/dist/echarts.min.jssolicita en realidadhttps://esm.sh/echarts@5/dist/echarts.min.js?raw(cuando se utiliza esm.sh por defecto). - URL completa: Cualquier dirección completa de un CDN (por ejemplo,
https://cdn.jsdelivr.net/npm/xxx).
- Ruta abreviada:
- Devuelve: El objeto de la librería cargada (la forma específica depende de cómo la librería exporte su contenido).
Después de la carga, muchas librerías UMD se adjuntan al objeto global (por ejemplo, window.xxx). Puede utilizarlas según se describe en la documentación de dicha librería.
Ejemplo
Nota: Si una librería proporciona una versión ESM, prefiera utilizar ctx.importAsync() para obtener una mejor semántica de módulos y Tree-shaking.

