dts
- Tipo:
boolean | PluginDtsOptions - Obligatorio: No
- Valor por defecto:
true - Escenario de uso: se usa para controlar el comportamiento de generación/consumo de tipos de
Module Federation
Una vez configurado, el producer genera automáticamente durante el build un archivo comprimido de tipos @mf-types.zip (nombre por defecto), y el consumer descarga automáticamente el archivo de tipos de los remotes y lo descomprime en @mf-types (nombre por defecto).
Los tipos de PluginDtsOptions son los siguientes:
generateTypes
- Tipo:
boolean | DtsRemoteOptions - Obligatorio: No
- Valor por defecto:
true - Escenario de uso: se usa para controlar el comportamiento de generación de tipos de
Module Federation
Los tipos de DtsRemoteOptions son los siguientes:
Al establecer generateTypes en true, se genera por defecto la siguiente configuración:
extractRemoteTypes
- Tipo:
boolean - Obligatorio: No
- Valor por defecto:
undefined - Escenario de uso: cuando el contenido de
exposesdel producer tiene su propio módulo deremotesque se reexporta a sí mismo,extractRemoteTypes: truegarantiza que el consumer pueda obtener correctamente el tipo de los módulos deexposesdel producer - Ejemplo: Reexportación de tipos anidados
Indica si se extraen los tipos de remotes.
extractThirdParty
- Tipo:
boolean - Obligatorio: No
- Valor por defecto:
undefined - Escenario de uso: cuando el contenido de
exposesdel producer incluye un módulo que contieneantdy el consumer no tieneantdinstalado,extractThirdParty: truegarantiza que el consumer pueda obtener correctamente el tipo de los módulos deexposesdel producer - Ejemplo: Extracción de tipos de paquetes de terceros
Indica si se extraen los tipos de paquetes de terceros.
generateAPITypes
- Tipo:
boolean - Obligatorio: No
- Valor por defecto:
undefined - Ejemplo: Sugerencias de tipos de la API de Federation Runtime
Indica si se genera el tipo de loadRemote en Federation Runtime
compileInChildProcess
- Tipo:
boolean - Obligatorio: No
- Valor por defecto:
undefined
Indica si los tipos se generan en un proceso hijo
abortOnError
- Tipo:
boolean - Obligatorio: No
- Valor por defecto:
false
Indica si se lanza un error cuando surge un problema durante la generación de tipos
afterGenerate
- Tipo:
(options: DtsGenerateTypesHookOptions) => Promise<void> | void - Obligatorio: No
- Valor por defecto:
undefined
Se ejecuta después de generar los tipos federados y antes de emitir los archivos generados.
tsConfigPath
- Tipo:
string - Obligatorio: No
- Valor por defecto:
path.join(process.cwd(),'./tsconfig.json')
prioridad: dts.generateTypes.tsConfigPath > dts.tsConfigPath Ruta del archivo de configuración tsconfig
outputDir
- Tipo:
string - Obligatorio: No
- Valor por defecto:
undefined
Directorio base de salida personalizado para los artefactos de tipos generados.
Si no se define esta opción, Module Federation emite @mf-types.zip y
@mf-types.d.ts en relación con el directorio de salida del bundler. Si tu remote entry
se emite en un subdirectorio anidado como production/remoteEntry.js, establece
dts.generateTypes.outputDir en ese mismo directorio de salida anidado para que los
artefactos de tipos se emitan junto al archivo de entrada.
Así, las URL de tipos inferidas por defecto se mantienen alineadas con la ruta del remote entry, de modo que
los consumers normalmente no necesitan remoteTypeUrls solo porque el remote entry se
sirva desde un subdirectorio.
Con la configuración anterior, los archivos generados se emiten en
dist/react/production/@mf-types.zip y
dist/react/production/@mf-types.d.ts.
typesFolder
- Tipo:
string - Obligatorio: No
- Valor por defecto:
'@mf-types'
Nombre del archivo comprimido de tipos generado. Por ejemplo, si typesFolder se establece en custom, el archivo comprimido de tipos generado se llamará: custom.zip
deleteTypesFolder
- Tipo:
boolean - Obligatorio: No
-Valor por defecto:
true
Indica si se elimina la carpeta de tipos generada
compilerInstance
- Tipo:
'tsc' | 'tsgo' | 'vue-tsc' | 'tspc' | string - Obligatorio: No
- Valor por defecto:
'tsc'
Instancia del compilador de tipos
deleteTsConfig
- Tipo:
boolean - Obligatorio: No
- Valor por defecto:
true
Indica si se elimina el archivo de configuración tsconfig temporal.
consumeTypes
- Tipo:
boolean | DtsHostOptions - Obligatorio: No
- Valor por defecto:
true - Escenario de uso: se usa para controlar el comportamiento de consumo (carga) de tipos de
Module Federation
Los tipos de DtsHostOptions son los siguientes:
Al establecer consumeTypes en true, se genera por defecto la siguiente configuración:
consumeAPITypes
- Tipo:
boolean - Obligatorio: No
- Valor por defecto:
true - Ejemplo: Sugerencias de tipos de la API de Federation Runtime
Indica si se genera el tipo de la API loadRemote del runtime
maxRetries
- Tipo:
number - Obligatorio: No
- Valor por defecto:
3
Número máximo de reintentos cuando falla la carga
abortOnError
- Tipo:
boolean - Obligatorio: No
- Valor por defecto:
false
Indica si se lanza un error cuando surge un problema durante la carga de tipos
typesFolder
- Tipo:
string - Obligatorio: No
- Valor por defecto:
'@mf-types'
Directorio donde se almacenan los tipos tras una carga correcta
deleteTypesFolder
- Tipo:
boolean - Obligatorio: No
- Valor por defecto:
true
Indica si, antes de cargar los archivos de tipos, se elimina el directorio typesFolder cargado previamente
remoteTypesFolder
- Tipo:
string - Obligatorio: No
- Valor por defecto:
'@mf-types'
Configuración del directorio typesFolder correspondiente a los remotes
remoteTypeUrls
- Tipo:
(() => Promise<RemoteTypeUrls>) | RemoteTypeUrls - Obligatorio: No
- Valor por defecto:
undefined
Se usa para obtener la dirección del archivo de tipos del remote.
Escenarios de aplicación:
- Solo se usa la API de runtime para cargar el producer, sin ningún plugin de build. Para indicar la dirección del archivo de tipos de MF, crea un archivo de configuración
module-federation.config.tsy define esta opción.
- Cuando el remote es
remoteEntry.js, la dirección del archivo de tipos suele obtenerse sustituyendo directamente el archivo js por el archivo de tipos correspondiente, como@mf-types.zip. Si la dirección real del archivo de tipos subido no es esa, puedes indicarle a MF la dirección real mediante esta opción.
family
- Tipo:
0 | 4 | 6 - Obligatorio: No
- Valor por defecto:
0
Configura la familia de versiones de IP que se usará en las operaciones de red.
typesOnBuild
- Tipo:
boolean - Obligatorio: No
- Valor por defecto:
false
Por defecto, Module Federation no carga archivos de tipos en producción ( process.env.NODE_ENV === 'production' ). Para habilitar la carga de tipos en los builds de producción, establece typesOnBuild en true .
tsConfigPath
- Tipo:
string - Obligatorio: No
- Valor por defecto:
path.join(process.cwd(),'./tsconfig.json')
Ruta del archivo de configuración tsconfig
cwd
- Tipo:
string - Obligatorio: No
- Valor por defecto:
undefined
Directorio de trabajo en el que se ejecuta el compilador
displayErrorInTerminal
- Tipo:
boolean - Obligatorio: No
- Valor por defecto:
true
Indica si se imprime el log de errores en la terminal