Por que esta exportação do módulo es6 não está funcionando/reconhecida?

Luca Reghellin

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?

Bergi

A mensagem de erro é bastante clara: você exportou, defaultmas 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.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=324032369&siteId=291194637