Pacotes @wippy-fe
Os pacotes @wippy-fe/* são publicados no npm e usados na construção de micro-frontends filhos — view pages (view.page) e web components (view.component) — que rodam dentro do Wippy Web Host. Eles não são usados para construir o próprio Web Host. Cada pacote é versionado em conjunto; todos os pacotes de uma dada release do Web Host compartilham o mesmo número de versão 0.0.x.
Instale os pacotes de que precisa:
npm install @wippy-fe/proxy @wippy-fe/webcomponent-vue @wippy-fe/router
Acessando o host — @wippy-fe/proxy
Tanto micro frontend apps (view.page) quanto web components (view.component) conversam com o host da mesma forma: imports nomeados síncronos de @wippy-fe/proxy, usados diretamente. Sem await para obtê-los e sem handshake — o host injeta a configuração antes de o seu código rodar.
| Objetivo | Importe de @wippy-fe/proxy |
|---|---|
| HTTP autenticado | api (uma instância de axios) |
| Comunicação com o host | host |
| Assinaturas de eventos | on |
| Estado entre iframes | state |
| WebSocket | ws |
| Logging | logger |
| Configuração do filho | config |
Helpers relacionados (não são acesso ao proxy):
| Objetivo | Onde |
|---|---|
| Roteamento Vue | createAppRouter() + <HostRouterLink> de @wippy-fe/router |
| Base de web component | WippyVueElement de @wippy-fe/webcomponent-vue |
| Props/eventos de componente | useProps() / useEvents() de @wippy-fe/webcomponent-vue (comumente encapsulados como useComponentProps() / useComponentEvents() no seu src/constants.ts) |
| Tipos TypeScript | ambientes via @wippy-fe/types-global-proxy (adicione ao types do tsconfig) — AppConfig / ProxyApiInstance viram globais; HostApi = ProxyApiInstance['host'] |
| Telas de carregamento/erro | <wippy-loading> / <wippy-error> de @wippy-fe/loading |
window.$W e window.getWippyApi são globais internos instalados pelo runtime — não os use diretamente (veja Proxy e Isolamento § Internals).
Pacotes
@wippy-fe/proxy
O módulo da API do Proxy — o pacote principal que todo micro-frontend filho usa para falar com o host Wippy. É uma facade síncrona e fina sobre o runtime do proxy (proxy.js): o runtime instala a API em globais internos, e o @wippy-fe/proxy a reexporta como getters síncronos. Micro frontend apps (no iframe injetado deles) e web components (na página do host) importam os mesmos getters — síncronos, sem await para obtê-los:
import { host, api, ws, on, state, html, sanitize } from '@wippy-fe/proxy'
// Navegar o host
host.navigate('/some-path')
// Chamar um endpoint de API do backend
const data = await api.get('/api/v1/agents/list')
// Enviar um comando WebSocket
ws.sendCommand(sessionId, { text: 'Hello' })
// Assinar um evento do host que não é de roteamento
on('@visibility', (visible) => { /* pausar ou retomar o trabalho */ })
// Estado entre iframes
state.set('my-key', { value: 42 })
state.get('my-key').then(v => console.log(v))
Exports principais: host, api, ws, on, state, html, sanitize, loadByTagName, loadWebComponent, classifyLink.
Marque @wippy-fe/proxy como external na sua configuração do Vite — o host o fornece via import map e você não deve empacotar sua própria cópia.
@wippy-fe/router
Helpers drop-in do Vue Router que cuidam da consciência de navegação do host que o <RouterLink> padrão não oferece. Fornece createAppRouter() para criar routers com histórico em memória, adequados a iframes srcdoc; AutoRouterLink (também exportado sob o alias deprecado RouterLink), um substituto drop-in classificador para o <RouterLink> do vue-router que inspeciona cada destino e o roteia como host-nav, child-nav, external ou ignore; e HostRouterLink, um link explícito que sempre encaminha a navegação para o host via host.navigate() (use-o quando quiser navegação em nível de host independentemente do aninhamento).
import { createAppRouter, HostRouterLink } from '@wippy-fe/router'
const router = createAppRouter(
[
{ path: '/', component: Home },
{ path: '/settings', component: Settings },
],
{ initialPath: config.context?.route ?? '/' },
)
createAppRouter() usa histórico em memória, de modo que o mesmo app permanece portável entre entrega por iframe, Fragment e auto. Passe config.context?.route como initialPath; a factory sincroniza sua rota interna com o host através de eventos @history. createWebHistory() direto é exclusivo de Fragment e não deve ser usado por um app que pode recorrer a iframe.
@wippy-fe/theme
Variáveis CSS de tema, o objeto de configuração do Tailwind CSS e a integração de estilização do PrimeVue. Expõe PrimeVuePlugin para instalar o PrimeVue em um app Vue com o preset de tema Wippy correto. Fornece o arquivo theme-config.css contendo todas as variáveis de paleta --p-primary-*, --p-surface-* e --p-secondary-*, e a configuração do Tailwind que mapeia essas variáveis para classes utilitárias.
Externalização de JavaScript e entrega de CSS são decisões separadas. Externalize o especificador JavaScript de @wippy-fe/theme apenas quando aquela chave exata existir no import map pinado do Web Host; caso contrário, empacote-o quando importado. Para um web component, solicite separadamente os assets de CSS de que seu shadow root precisa através de hostCssKeys (por exemplo, themeConfigUrl ou primeVueCssUrl). Veja Temas para o pipeline de CSS.
@wippy-fe/webcomponent-core
Classe base agnóstica de framework para construir web components Wippy. Fornece WippyElement, que estende HTMLElement com hooks de ciclo de vida (onMount, onUnmount), conexão de contexto de painel (this.host para o wrapper da API do proxy com escopo de painel) e vínculos reativos opcionais de props e eventos.
import { api } from '@wippy-fe/proxy'
import { WippyElement } from '@wippy-fe/webcomponent-core'
class MyWidget extends WippyElement {
protected async onMount() {
const { data } = await api.get('/api/v1/ping')
this.innerHTML = `<div>Hello from ${data.name}</div>`
this.host?.layout.on('update', ({ payload }) => {
// reagir a mensagens entre painéis
})
}
protected onUnmount() {}
static get wippyConfig() {
return { propsSchema: { properties: { label: { type: 'string' } } } }
}
}
customElements.define('my-widget', MyWidget)
Também exporta getWippyHost(el), getWippyHostBus(el) e getWippyPanelId(el) para subclasses de HTMLElement cruas que não estendem WippyElement. Em 0.0.52+, WippyElement.hostVisible, onHostVisibilityChanged(visible, previous) e reactive.hostVisibility expõem a atividade lógica retida sem tratar o atributo reservado como uma prop do componente.
@wippy-fe/webcomponent-vue
Camada de integração Vue 3 para web components Wippy. Fornece WippyVueElement (uma subclasse de WippyElement que monta um app Vue em um shadow root), define() para registrar o custom element, e composables para acessar o contexto do host dentro de componentes Vue. Os composables exportados são useProps, useEvents, usePropsErrors, useContent, useHost, useHostVisibility, useHostVisibilityRefresh, usePanelId e useLayoutBus.
import { define, WippyVueElement, useProps, useEvents, useHost } from '@wippy-fe/webcomponent-vue'
// ProxyApiInstance é um tipo global ambiente de @wippy-fe/types-global-proxy ("types" do tsconfig) — sem import
import MyApp from './MyApp.vue'
class MyVueWidget extends WippyVueElement {
static get vueConfig() {
return { rootComponent: MyApp }
}
static get wippyConfig() {
return { propsSchema: { properties: { label: { type: 'string' } } } }
}
}
// Padrão de autoload — lê ?declare-tag=tagName da URL em tempo de execução
define(import.meta.url, MyVueWidget)
// Registro manual (use apenas fora do sistema de autoload):
// define('my-vue-widget', MyVueWidget)
define tem duas convenções de chamada:
define(import.meta.url, Class)— o padrão de autoload. A função lê o parâmetro de query?declare-tag=tagNameda URL do módulo para determinar o nome do elemento. Use isso em todos os componentes Wippy construídos para autoload — é a única forma que funciona corretamente com o auto-registro dowippy/views.define('tag-name', Class)— registro direto. Registra o custom element imediatamente sob o nome dado, contornando o mecanismo?declare-tag=. Use apenas para registro programático ou manual fora do sistema de autoload (por exemplo, um playground autônomo, um harness de teste).
Dentro de MyApp.vue:
import { useProps, useEvents, useHost } from '@wippy-fe/webcomponent-vue'
// Ler props declaradas em wippyConfig.propsSchema
const props = useProps<{ label: string }>()
// Emitir eventos para o host
const emit = useEvents()
emit('selected', { id: 42 })
// Acessar o wrapper de host com escopo de painel
const host = useHost<ProxyApiInstance['host']>()
host?.layout.broadcast('my-event', { data: 'hello' })
useProps() e useEvents() são os composables da biblioteca. Projetos costumam adicionar wrappers finos vinculados a tipos — useComponentProps() / useComponentEvents() — no próprio src/constants.ts (por exemplo, export const useComponentProps = () => useProps<ComponentProps>()); esses nomes são locais ao projeto, não exports de @wippy-fe/webcomponent-vue.
useContent() também está disponível para ler conteúdo no estilo slot injetado pelo host no componente.
useHostVisibility() retorna o ref de atividade lógica pertencente ao host para
um custom element retido. useHostVisibilityRefresh(task) executa task após a
montagem e novamente apenas em uma revelação exata de false -> true, sem
substituir o elemento. Ele serializa uma tarefa em andamento e agrupa revelações
intermediárias em um único refresh final.
Esses exports exigem @wippy-fe/webcomponent-vue 0.0.52 ou mais novo.
@wippy-fe/layout
Autores de shells diretos usam LayoutManagerView para mounts de painel estáveis
e useSwapBuffer() para trocas de conteúdo retido sem flash. Em 0.0.52+, a
prontidão assíncrona pode ser protegida tanto pelo índice imutável de buffer
quanto pela chave de conteúdo, e a pilha do splitter expõe
--wippy-layout-splitter-z-index. A alça circular do splitter permanece opcional
através de --wippy-layout-splitter-handle-size (0 por padrão).
Primitivas de layout puras e agnósticas de framework usadas internamente pelo motor de layout gerenciado do Web Host. A maioria dos desenvolvedores de apps filhos usa isso indiretamente através dos composables de @wippy-fe/vue-host. O uso direto é apropriado ao construir ferramentas cientes de layout ou shells customizados.
Fornece LayoutManager — a classe central que gerencia a árvore de painéis, lida com a troca de breakpoints, valida HostLayoutDeclaration e executa mutações como resizePanel e collapsePanel. Zero dependência de Vue.
@wippy-fe/vue-host
Composables Vue 3 que envolvem a API de layout do proxy em refs reativos para uso dentro de módulos de página que rodam em painéis de layout gerenciado. Os composables nunca retornam null — eles sempre retornam objetos/refs cujo .value interno degrada quando não há host de layout gerenciado presente: snapshot.value é null e isManaged.value é false (mutações viram no-ops silenciosos), useWippyBreakpoint().value e useWippyMainRoute().value são strings vazias, e useWippyPanel(id).value é null para um id ausente. Proteja a presença do host com layout.isManaged.value (ou layout.snapshot.value !== null), não com uma checagem === null no valor de retorno. A assinatura de layout subjacente tem escopo de módulo e vive durante todo o ciclo de vida do iframe — não há limpeza por componente na desmontagem.
| Composable | Retorna |
|---|---|
useWippyLayout() |
snapshot, activeBreakpoint, panels e isManaged reativos, mais as mutações expostas: resizePanel, collapsePanel, expandPanel, movePanel, removePanel, closeModal, removeFloating |
useWippyPanel(panelId) |
Um ComputedRef para o estado ao vivo do painel nomeado (ou null se ausente); panelId é um string | Ref<string> | getter obrigatório |
useWippyBreakpoint() |
Nome do breakpoint ativo |
useWippyMainRoute() |
Ref reativo para a rota atual do painel principal |
@wippy-fe/shared
Tipos de contrato entre fronteiras, constantes de nomes globais e helpers de DOM sem dependências, compartilhados entre o host e os pacotes @wippy-fe/*. Ele exporta os tipos do barramento de layout (BroadcastEnvelope, LayoutBusBound, PanelTarget, DropPosition, SizeValue, PixelSize) e constantes de nomes globais (GLOBAL_API_PROVIDER, GLOBAL_CONFIG_VAR, …). Em 0.0.52+, ele também exporta readWippyVisibility, setWippyVisibility e WIPPY_VISIBILITY_ATTRIBUTE para o contrato de WC retido. Ele não exporta AppConfig / ProxyApiInstance / HostApi — esses são tipos ambientes de @wippy-fe/types-global-proxy (abaixo).
@wippy-fe/types-global-proxy
Declarações ambientes de TypeScript para os globais do proxy disponíveis em iframes srcdoc: window.$W, window.getWippyApi(), window.__WIPPY_APP_CONFIG__, window.__WIPPY_APP_API__ e window.__WIPPY_PROXY_CONFIG__. Adicione este pacote às suas devDependencies e referencie-o no tsconfig.json para ter acesso tipado a esses globais sem importar nada em tempo de execução. Ele também torna os próprios tipos do proxy — AppConfig, ProxyApiInstance, StateApi, ProxyWsApi e os tipos de mensagem do WebSocket — disponíveis como tipos ambientes que você pode anotar diretamente (sem import).
{
"compilerOptions": {
"types": ["@wippy-fe/types-global-proxy"]
}
}
@wippy-fe/pinia-persist
Plugin do Pinia para persistência de estado entre iframes. Encaminha escritas de store do Pinia através da API state do proxy, de modo que o estado da página sobreviva à navegação do iframe e possa ser compartilhado entre painéis. Útil para preservar rascunhos de formulário ou preferências do usuário sem implementar lógica de persistência customizada.
import { createPinia } from 'pinia'
import { createWippyPersist, preloadWippyState } from '@wippy-fe/pinia-persist'
const pinia = createPinia()
const preloaded = await preloadWippyState()
pinia.use(createWippyPersist(preloaded))
Stores optam por participar declarando wippyPersist: true nas opções do defineStore (não persist: true). Valores de scope customizados são automaticamente prefixados com @custom: para evitar colisões com escopos de sistema (UUID de página/artefato) e precisam ser globalmente únicos; dê a duas instâncias de store baldes separados passando um scope distinto por instância.
@wippy-fe/vue-utils
Pequenos utilitários para apps Vue 3 rodando dentro de iframes do Wippy. Atualmente exporta installVueWarnSuppressor(app), que recebe seu app Vue e suprime os avisos [Vue warn]: Failed to resolve component para tags de custom element em kebab-case registradas via customElements.define(...) (tags de sistema w-iframe / w-artifact / wippy-loading / wippy-error, mais tags de autoload). Chame-o uma vez no boot do app, passando a instância do app:
import { installVueWarnSuppressor } from '@wippy-fe/vue-utils'
import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
installVueWarnSuppressor(app)
app.mount('#app')
Sem ele, você pode ver ruído de [Vue warn]: Failed to resolve component no console para tags de custom element que o compilador de templates do Vue não reconhece (os elementos renderizam corretamente de qualquer forma). Erros de digitação em componentes PascalCase continuam avisando, preservando esse sinal. O pacote @wippy-fe/proxy reexporta esse helper por conveniência.
@wippy-fe/vite-plugin
Plugins do Vite que atendem aos requisitos de tempo de build dos micro-frontends Wippy. Fornece dois plugins:
wippyPagePlugin() — para módulos view.page. Lê e valida o campo wippy no package.json, resolve referências file:// suportadas, emite wippy-meta.json e injeta os metadados de pacote host-less no HTML compilado. Ele não configura os externals do Rollup; a aplicação precisa alinhar seus externals ao import map do Web Host alvo.
wippyComponentPlugin() — para módulos view.component. Semelhante ao wippyPagePlugin(), mas voltado ao formato de saída de web component (ESM, sem shell HTML). Também emite wippy-meta.json com o tagName e o schema do componente.
// vite.config.ts para um módulo view.page
import { wippyPagePlugin } from '@wippy-fe/vite-plugin'
export default {
plugins: [
vue(),
wippyPagePlugin(),
],
}
@wippy-fe/log
Logger estruturado com zero dependências de produção. Fornece as funções de log debug, info, warn, error, captureException para reporte de erros e uma trilha de breadcrumbs. Suporta transportes plugáveis: console (padrão), Sentry e GELF. Todas as chamadas de log incluem tags de contexto que o host pode usar para correlacionar entradas de log de iframes filhos com a sessão pai deles.
import { createChildLogger } from '@wippy-fe/log/logger'
const log = createChildLogger({ resourceId: 'my-widget' })
log.info('Widget mounted', { panelId: 'main' })
log.error('Request failed', { url: '/api/data', status: 500 })
@wippy-fe/loading
Custom elements <wippy-loading> e <wippy-error> sem dependências, entregues como um IIFE (loading.js). O host injeta automaticamente o loading.js em todo iframe filho antes do proxy.js, então esses elementos estão sempre disponíveis nos apps filhos sem nenhum import.
<wippy-loading> — spinner de carregamento em tela cheia. Atributos: title, subtitle, no-bg (modo overlay sem fundo).
<wippy-error> — exibição de erro em tela cheia. Atributos: title, message, icon (circle | triangle | sad), severity (danger | warning).
<!-- Exibir durante o carregamento -->
<wippy-loading title="Loading data..." subtitle="Please wait"></wippy-loading>
<!-- Exibir em caso de erro -->
<wippy-error
title="Something went wrong"
message="Could not load the dashboard."
icon="sad"
severity="danger">
</wippy-error>
Esses elementos também são registrados no próprio host para uso em estados de erro fatal.
@wippy-fe/chat
Em 0.0.51+, o <wippy-chat> reage a session-id e start-token sem exigir
substituição do elemento. Limpar ou remover uma sessão previamente controlada
inicia um novo chat respaldado por token quando há um token presente, enquanto
reconexões não reproduzem um token já consumido. Inícios substituídos são seguros
contra corrida.
Um conjunto de custom elements de chat componíveis — <wippy-chat>, <wippy-chat-messages>, <wippy-chat-input> e <wippy-session-selector> — que colocam um chat Wippy ao vivo em qualquer filho, por tag. Assim como @wippy-fe/loading, um shell minúsculo (chat.js) auto-registra as quatro tags e é injetado em todo contexto filho através do array scripts do host, então os elementos ficam disponíveis por nome de tag sem import nem registro. As internas pesadas do chat (Vue + PrimeVue/Shiki/markdown) são code-split e carregadas sob demanda na primeira montagem.
<wippy-session-selector></wippy-session-selector>
<wippy-chat></wippy-chat>
Veja Web Components de Chat para a referência completa dos elementos — atributos, eventos, composição e temas.
@wippy-fe/markdown-iframe
Bundle pesado de renderização de markdown (markdown-it + realce de sintaxe Shiki). Importado dinamicamente pelo componente <w-artifact> do host quando ele precisa renderizar conteúdo Markdown dentro de um artefato em iframe. Apps filhos que renderizam Markdown por conta própria podem importar este pacote para ter o mesmo renderizador com estilização consistente, embora, para casos simples, apenas markdown-it (disponível como external) seja suficiente.
Import Map do Host
Use a mesma <version-tag> pinada de fe_facade_url e busque o artefato da release uma vez durante o desenvolvimento:
curl.exe -fsS "https://web-host.wippy.ai/<version-tag>/import-map.json" -o import-map.json
As chaves exatas do objeto imports buscado são o contrato de externalização de JavaScript:
- Coloque todas as chaves em
build.rollupOptions.external, incluindo pacotes que a aplicação atual não importa. O mapa do host é append-only, então não mantenha um subconjunto menor curado à mão. - Copie o mesmo objeto
importscompleto para oapp.htmlhost-less. - Empacote um especificador importado apenas quando o especificador bare exato dele estiver ausente do mapa pinado.
- Busque novamente quando a tag do Web Host mudar ou ao adicionar uma dependência, para checar se o especificador exato dela pode ser external.
- O PrimeVue segue a mesma regra de subcaminho exato:
primevue/buttonnão implicaprimevue/dialog.
Ao explicar este contrato, não emita um <script type="importmap"> parcial ou com
placeholders. Comentários em JSON e entradas com reticências são inválidos e
enganosos. Ou mostre o objeto completo buscado para uma tag explícita, ou diga ao
leitor para buscá-lo e copiá-lo literalmente.
// vite.config.ts
import { readFileSync } from 'node:fs'
const hostImportMap = JSON.parse(
readFileSync(new URL('./import-map.json', import.meta.url), 'utf8'),
) as { imports: Record<string, string> }
const hostExternals = Object.keys(hostImportMap.imports)
export default {
build: {
rollupOptions: {
external: hostExternals,
},
},
}
peerDependencies não são uma cópia idêntica dessa lista. Declare apenas as raízes de pacote npm que o artefato realmente importa; subcaminhos do import map, como @wippy-fe/log/logger, não são pacotes peer separados.
Consulte a sequência de bootstrap para ver a precedência e o ciclo de vida do mapa de importação do AppConfig.
Coleção estática do Iconify
A versão do Host inclui a coleção estática do Tabler em iconify/tabler.json. Ela é um recurso da versão, não um pacote npm. A implantação precisa configurar AppConfig.iconify.providers explicitamente para usá-la. Consulte Provedores do Iconify.
Exports de navegador do PrimeVue 4.5.5
A versão publicada do Host fixa o PrimeVue 4.5.5. O inventário gerado é servido
na raiz versionada do Host. A base publicada é Web Host 1.0.66 e os pacotes
públicos 0.0.66. Confirme as etiquetas antes de as usar. Ficheiro:
primevue-export-inventory.json.
curl.exe -fsS "https://web-host.wippy.ai/<release-tag>/primevue-export-inventory.json" -o primevue-export-inventory.json
O inventário registra os padrões públicos de exportação e cada especificador
concreto de runtime. Ele contém 274 entradas JavaScript de runtime, incluindo a
raiz e todos os caminhos ./* declarados pelo PrimeVue. Inclui componentes,
aliases, serviços, diretivas, utilitários e módulos de estilo; 129 entradas são
módulos de estilo. Quatro exports são somente de tipos e não viram chaves no mapa
do navegador. Quatro entradas de runtime não têm destino de tipos. O conjunto de
runtime e tipos contém 278 especificadores únicos. Use os caminhos e destinos do
inventário como fonte de verdade; não mantenha uma lista paralela.
O mapa contém chaves exatas como primevue e primevue/button. Import maps de
navegador não aceitam o curinga primevue/*, então cada subcaminho de runtime
tem sua própria chave. O Host resolve a raiz do pacote pelo manifesto do
PrimeVue e expande os padrões declarados em destinos concretos relativos ao
pacote. @primevue/icons e @primeuix/* permanecem no grafo compartilhado
do vendor e não recebem chaves diretas. A versão publicada fixa @primevue/icons
4.5.5, @primeuix/styled 0.7.4, @primeuix/styles e @primeuix/themes 2.0.3,
e @primeuix/utils 0.6.4. O mapa não tem exports diretos JSON ou
CSS. Os recursos alcançáveis pelo grafo JavaScript também precisam estar na
distribuição compilada do Host.
import Button from 'primevue/button'
O snapshot completo do import map continua sendo o contrato de externalização do Rollup. Adicionar uma chave ao mapa não altera um consumidor já compilado. Recompile apps e componentes com o mapa fixado para que os imports exatos de PrimeVue usem o grafo compartilhado do Host. A externalização de JavaScript não fornece CSS do PrimeVue. Solicite o CSS necessário separadamente pelas chaves CSS documentadas do Host. O CSS de preview local continua sendo um requisito da Fase 4.
Este inventário corresponde ao Web Host 1.0.66 publicado. Confirme o URL e o conteúdo com o artefacto Host publicado antes de o usar.
O JSON tem os campos de nível superior schemaVersion, package, counts,
exports e entries. exports descreve os padrões públicos do PrimeVue. O
array ordenado entries lista os specifiers e destinos concretos de runtime.
Cada entrada de runtime inclui specifier, target relativo ao pacote,
sha256, kind e typesTarget quando existe uma declaração. As entradas só de
tipos também aparecem em entries, mas não são chaves do import map.
PrimeVue Chart e Editor carregam chart.js 4.5.1 e quill 2.0.3 em chunks dinâmicos. O Host inclui as duas dependências localmente. Aplicações que usam os exports mapeados do PrimeVue não precisam instalá-las para esses chunks. O mapa do Host tem 294 entradas, incluindo 274 do PrimeVue. O Host injeta @wippy-fe/vue-utils como a chave 295; ela não é um mapeamento da aplicação. Use o snapshot exato e fixado do Host como contrato de build.
Substituições do import map em AppConfig
AppConfig.importMap pode substituir entradas correspondentes da página ou do Host, inclusive Vue, PrimeVue e Wippy. Chaves exatas correspondem a um specifier. Chaves terminadas em barra mapeiam um prefixo e o destino também precisa terminar em barra. Use scopes para selecionar entradas pela URL do módulo que faz o import. Destinos relativos usam a URL base do documento.
Um módulo de CDN pode importar outros bare specifiers. Adicione entradas para essas dependências ou use uma URL de CDN que as inclua. O mapa em execução não reescreve dependências já incorporadas ao bundle da aplicação. Consulte Sequência de inicialização para prioridade, limpeza e ciclo de vida.
Use este campo somente com uma versão implantada do Host cuja documentação confirme o suporte.