Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
Dans RunJS, vous pouvez utiliser deux types de modules : les modules intégrés (utilisés directement via ctx.libs, sans import) et les modules externes (chargés à la demande via ctx.importAsync() ou ctx.requireAsync()).
RunJS inclut des bibliothèques courantes accessibles directement via ctx.libs. Vous n'avez pas besoin d'utiliser import ou de chargement asynchrone pour celles-ci.
| Propriété | Description |
|---|---|
| ctx.libs.React | React lui-même, utilisé pour le JSX et les Hooks |
| ctx.libs.ReactDOM | ReactDOM (peut être utilisé avec createRoot, etc.) |
| ctx.libs.antd | Bibliothèque de composants Ant Design |
| ctx.libs.antdIcons | Icônes Ant Design |
| ctx.libs.math | Math.js : expressions mathématiques, opérations matricielles, etc. |
| ctx.libs.formula | Formula.js : formules de type Excel (SUM, AVERAGE, etc.) |
Lorsque vous avez besoin de bibliothèques tierces, choisissez la méthode de chargement en fonction du format du module :
ctx.importAsync()ctx.requireAsync()Utilisez ctx.importAsync() pour charger dynamiquement des modules ESM par URL. Cela convient aux blocs JS, aux champs JS, aux actions JS, etc.
<nom-du-paquet>@<version> ou des sous-chemins comme <nom-du-paquet>@<version>/<chemin-du-fichier> (ex : vue@3.4.0, lodash@4/lodash.js). Le préfixe CDN configuré sera ajouté automatiquement. Les URLs complètes sont également prises en charge.Si aucune configuration n'est définie, les formes abrégées utiliseront https://esm.sh comme préfixe CDN. Par exemple :
Si vous avez besoin d'un réseau interne ou d'un CDN auto-hébergé, vous pouvez déployer un service compatible avec le protocole esm.sh et le spécifier via des variables d'environnement :
https://esm.sh)/+esm pour jsDelivr)Pour l'auto-hébergement, reportez-vous à : https://github.com/nocobase/esm-server
Utilisez ctx.requireAsync() pour charger de manière asynchrone des modules UMD/AMD ou des scripts attachés à l'objet global via une URL.
<nom-du-paquet>@<version>/<chemin-du-fichier>, identique à ctx.importAsync(), résolu selon la configuration actuelle du CDN ESM. Lors de la résolution, ?raw est ajouté pour demander directement le fichier brut (généralement un build UMD). Par exemple, echarts@5/dist/echarts.min.js demande en réalité https://esm.sh/echarts@5/dist/echarts.min.js?raw (lorsque esm.sh est utilisé par défaut).https://cdn.jsdelivr.net/npm/xxx).Après le chargement, de nombreuses bibliothèques UMD s'attachent à l'objet global (ex : window.xxx). Utilisez-les conformément à la documentation de la bibliothèque.
Exemple
Remarque : Si une bibliothèque fournit une version ESM, utilisez de préférence ctx.importAsync() pour bénéficier d'une meilleure sémantique de module et du Tree-shaking.