Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

342
Vistas
How to do ESM dynamic export?

The following exports code used to work when I set the project as 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];
  }
}

Now, I am trying to convert this to ESM Module so I use ESM export, instead of CJS exports but it keeps throwing me 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];
  }
}

The only way I can workaround it is to declare this statically and manually one by one OUTSIDE the for loop at the top-level.

Question: How can I adopt the similar structure I had in CJS in ESM so that I can programmatically export the functions stored inside a variable?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

You can't do dynamic export with ESM. ESM requires exports to be statically analyzable.

Instead, you can export an object that you define dynamically:

export const someName = {...cloudFunctions};

...or perhaps just export cloudFunctions directly, since it appears to already have what you want to export:

export cloudFunctions;

Code importing from the module will not be able to directly import properties from the object you export; instead, it will have to import the object and then use the desired property. For instance, if I assume you do direclty export cloudFunctions:

...then to import (say) the whatever function, then assuming you used someName as the name of the export:

import { someName } from "./the-module";
const { whatever } = someName;

// ...code using `whatever`...
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda