El siguiente código de exportación solía funcionar cuando configuré el proyecto como CommonJS
let group: keyof typeof cloudFunctions; // loop through all groups built above and export them for (group in cloudFunctions) { if (group != null) { exports[group] = cloudFunctions[group]; } } Ahora, estoy tratando de convertir esto en un módulo ESM, así que uso export ESM, en lugar de las exports CJS, pero me sigue arrojando un error.
let group: keyof typeof cloudFunctions; // loop through all groups built above and export them for (group in cloudFunctions) { if (group != null) { export[group] = cloudFunctions[group]; } }La única forma en que puedo solucionarlo es declarar esto de forma estática y manual uno por uno FUERA del bucle for en el nivel superior.
Pregunta: ¿Cómo puedo adoptar la estructura similar que tenía en CJS en ESM para poder exportar mediante programación las funciones almacenadas dentro de una variable?
No puede hacer una exportación dinámica con ESM. ESM requiere que las exportaciones sean analizables estáticamente.
En su lugar, puede exportar un objeto que defina dinámicamente:
export const someName = {...cloudFunctions}; ...o tal vez solo exporte cloudFunctions directamente, ya que parece que ya tiene lo que desea exportar:
export cloudFunctions; La importación de código desde el módulo no podrá importar directamente las propiedades del objeto que exporta; en su lugar, tendrá que importar el objeto y luego usar la propiedad deseada. Por ejemplo, si asumo que exporta directamente cloudFunctions :
... luego para importar (decir) la función whatever , luego suponiendo que usó someName como el nombre de la exportación:
import { someName } from "./the-module"; const { whatever } = someName; // ...code using `whatever`...