Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

363
Visualizações
Exportación ESM * excepto desde el módulo

Dado que tengo dos importaciones con muchas exportaciones con nombre (demasiadas para escribirlas todas) y quiero volver a exportarlas excepto algunas. En mi caso esto se debe a que chocan algunas exportaciones.

Como ejemplo de lo que quiero archivar, supongamos que tenemos dos archivos:

foo.js :

 export const a = 1; export const b = 2;

bar.js :

 export const b = 1; export const c = 3;

Si quiero agregarlos y volver a exportarlos usando CommonJS, podría hacer algo como esto:

 /* use rest destructuring to put everything except "b" into variable "foo" */ const { b, ...foo } = require("./foo"); const bar = require("./bar"); module.exports = { ...foo, ...bar };

Como estoy usando mecanografiado, lo más cerca que he estado es usar export = { ... } de manera similar:

 import * as foo from "./foo"; import * as bar from "./bar"; const { b, ...foo2 } = foo; export = { ...foo2, ...bar, };

Sin embargo, tengo entendido que esto creará un archivo con CommonJS module.exports en lugar de un módulo ESM adecuado (y probablemente requiera esModuleInterop ). Y es una construcción mecanografiada y no está disponible al escribir Vanilla JS.

¿Hay alguna forma de archivar esto mediante la import / export de ESM?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

¿Hay alguna forma de archivar esto mediante la importación/exportación de ESM?

No, no en ESM estándar puro, no sin hacer lo que intenta evitar: enumerar las exportaciones nombradas. No existe el concepto de "descanso" en la import / export de ESM.

Creo que lo sabe, pero podría exportar un objeto con propiedades para a , b y c , pero eso es muy diferente de volver a exportar exportaciones con nombre. No sería un enlace en vivo, y la sintaxis para importar sus partes es diferente de importar exportaciones con nombre (a menos que se involucren herramientas en tiempo de compilación como TypeScript o empaquetadores, etc.).

Solo FWIW, así es como se ve (es muy similar a su versión de TypeScript cerca del final), pero no creo que sea lo que quiere:

reexport.js :

 import * as foo from "./foo.js"; import * as bar from "./bar.js"; const { b, ...restOfFoo } = foo; export default { ...restOfFoo, ...bar, };

Entonces usarlo es:

 // Import the object (which is the default export) import stuff from "./reexport.js"; // Destructure into local vars (optional, but...) const { a, b, c } = stuff; // Use it... console.log(a, b, c);

Eso es todo ESM estándar.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda