Me estoy volviendo loco con la sintaxis de importación/exportación de módulos...
Digamos en un archivo que quiero importar un módulo como este:
import { AccordionMenu } from '../node_modules/lr-js-modules/accordion-menu';Ahora, ¿cómo debo exportar desde el menú de acordeón? Mi código actual es una clase js de la vieja escuela como esta:
AccordionMenu = function(options){ [...] } AccordionMenu.prototype = { ... }Luego estaba exportando así:
export { AccordionMenu as default };no funciona El compilador dice
exportar 'AccordionMenu' (importado como 'AccordionMenu') no se encontró en '../node_modules/lr-js-modules/accordion-menu' (exportaciones posibles: predeterminado)
Luego probé varias variantes, pero ninguna me funcionó. Desde mdn docs, por lo que puedo decir, todas las variantes deberían funcionar, pero es evidente que estoy haciendo algo mal.
¿Podrías ayudarme por favor?
El mensaje de error es bastante claro: exportaste default pero tu importación intenta acceder a un AccordionMenu de exportación.
Deberías usar cualquiera
export function AccordionMenu(options) { … } // same as: // function AccordionMenu(options) { … } // export { AccordionMenu as AccordionMenu } AccordionMenu.prototype = { … };con
import { AccordionMenu } from '../node_modules/lr-js-modules/accordion-menu'; // same as: // import { AccordionMenu as AccordionMenu } from '../node_modules/lr-js-modules/accordion-menu';o , si esa función es la única (o principal) exportación de ese módulo, use una exportación predeterminada
export default function AccordionMenu(options) { … } // same as: // function AccordionMenu(options) { … } // export { AccordionMenu as default } AccordionMenu.prototype = { … };con
import AccordionMenu from '../node_modules/lr-js-modules/accordion-menu'; // same as: // import { default as AccordionMenu } from '../node_modules/lr-js-modules/accordion-menu';pero la mezcla no funciona.