Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
No RunJS, você pode usar dois tipos de módulos: módulos integrados (acessados diretamente via ctx.libs, sem necessidade de import) e módulos externos (carregados sob demanda via ctx.importAsync() ou ctx.requireAsync()).
O RunJS inclui várias bibliotecas integradas que podem ser acessadas diretamente através de ctx.libs. Você não precisa usar import ou carregamento assíncrono para elas.
| Propriedade | Descrição |
|---|---|
| ctx.libs.React | React core, usado para JSX e Hooks |
| ctx.libs.ReactDOM | ReactDOM (pode ser usado para createRoot, etc.) |
| ctx.libs.antd | Biblioteca de componentes Ant Design |
| ctx.libs.antdIcons | Ícones do Ant Design |
| ctx.libs.math | Math.js: Expressões matemáticas, operações de matriz, etc. |
| ctx.libs.formula | Formula.js: Fórmulas estilo Excel (SUM, AVERAGE, etc.) |
Quando você precisar de bibliotecas de terceiros, escolha o método de carregamento com base no formato do módulo:
ctx.importAsync()ctx.requireAsync()Use ctx.importAsync() para carregar dinamicamente módulos ESM por URL. Isso é adequado para cenários como blocos JS, campos JS e ações JS.
<pacote>@<versão> ou subcaminhos como <pacote>@<versão>/<caminho-do-arquivo> (ex: vue@3.4.0, lodash@4/lodash.js). Estes serão prefixados com a URL base do CDN configurada. URLs completas também são suportadas.Se não houver configuração, as formas curtas usarão https://esm.sh como prefixo do CDN. Por exemplo:
Se você precisar usar uma rede interna ou um CDN próprio, pode implantar um serviço compatível com o protocolo esm.sh e especificá-lo via variáveis de ambiente:
https://esm.sh)/+esm para jsDelivr)Para auto-hospedagem, consulte: https://github.com/nocobase/esm-server
Use ctx.requireAsync() para carregar assincronamente módulos UMD/AMD ou scripts que se anexam ao objeto global.
<pacote>@<versão>/<caminho-do-arquivo>, semelhante ao ctx.importAsync(), resolvido de acordo com a configuração atual do CDN ESM. Ao resolver, ?raw é anexado para solicitar o arquivo original diretamente (geralmente uma build UMD). Por exemplo, echarts@5/dist/echarts.min.js na verdade solicita https://esm.sh/echarts@5/dist/echarts.min.js?raw (quando o esm.sh padrão é usado).https://cdn.jsdelivr.net/npm/xxx).Após o carregamento, muitas bibliotecas UMD se anexam ao objeto global (ex: window.xxx). Você pode usá-las conforme descrito na documentação da biblioteca.
Exemplo
Nota: Se uma biblioteca fornecer uma versão ESM, prefira usar ctx.importAsync() para obter melhor semântica de módulo e Tree-shaking.