Estou ficando louco com a sintaxe de importação/exportação do módulo...
Digamos em um arquivo que eu queira importar um módulo como este:
import { AccordionMenu } from '../node_modules/lr-js-modules/accordion-menu';
Agora, como devo exportar do menu do acordeão? Meu código atual é uma classe js da velha escola como esta:
AccordionMenu = function(options){
[...]
}
AccordionMenu.prototype = { ... }
Então eu estava exportando assim:
export { AccordionMenu as default };
Não funciona. O compilador diz
export 'AccordionMenu' (importado como 'AccordionMenu') não foi encontrado em '../node_modules/lr-js-modules/accordion-menu' (possível exportação: padrão)
Eu tentei várias variantes, mas nenhuma funcionou para mim. Dos documentos mdn, até onde eu sei, todas as variantes devem funcionar, mas é evidente que estou fazendo algo errado.
Você pode ajudar por favor?
A mensagem de erro é bastante clara: você exportou, default
mas sua importação tenta acessar um arquivo export AccordionMenu
.
Você deve usar ou
export function AccordionMenu(options) { … }
// same as:
// function AccordionMenu(options) { … }
// export { AccordionMenu as AccordionMenu }
AccordionMenu.prototype = { … };
com
import { AccordionMenu } from '../node_modules/lr-js-modules/accordion-menu';
// same as:
// import { AccordionMenu as AccordionMenu } from '../node_modules/lr-js-modules/accordion-menu';
ou , se essa função for a única (ou principal) exportação desse módulo, use uma exportação padrão
export default function AccordionMenu(options) { … }
// same as:
// function AccordionMenu(options) { … }
// export { AccordionMenu as default }
AccordionMenu.prototype = { … };
com
import AccordionMenu from '../node_modules/lr-js-modules/accordion-menu';
// same as:
// import { default as AccordionMenu } from '../node_modules/lr-js-modules/accordion-menu';
mas a mistura não funciona.