Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
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()).
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.
| Propiedad | Descripción |
|---|---|
| ctx.libs.React | Núcleo de React, utilizado para JSX y Hooks |
| ctx.libs.ReactDOM | ReactDOM (puede utilizarse para createRoot, etc.) |
| ctx.libs.antd | Librería de componentes Ant Design |
| ctx.libs.antdIcons | Iconos de Ant Design |
| ctx.libs.math | Math.js: Expresiones matemáticas, operaciones de matrices, etc. |
| ctx.libs.formula | Formula.js: Fórmulas similares a Excel (SUM, AVERAGE, etc.) |
Cuando necesite librerías de terceros, elija el método de carga según el formato del módulo:
ctx.importAsync()ctx.requireAsync()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.
<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.Si no se configura lo contrario, las formas abreviadas utilizarán https://esm.sh como prefijo del CDN. Por ejemplo:
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:
https://esm.sh)/+esm para jsDelivr)Para el autohospedaje, consulte: https://github.com/nocobase/esm-server
Utilice ctx.requireAsync() para cargar de forma asíncrona módulos UMD/AMD o scripts que se adjuntan al objeto global.
<paquete>@<versión>/<ruta-del-archivo>, similar a ctx.importAsync(), resuelta según la configuración actual del CDN de ESM. Al resolverla, se añade ?raw para solicitar directamente el archivo original (generalmente una compilación UMD). Por ejemplo, echarts@5/dist/echarts.min.js solicita en realidad https://esm.sh/echarts@5/dist/echarts.min.js?raw (cuando se utiliza esm.sh por defecto).https://cdn.jsdelivr.net/npm/xxx).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.