为什么这个 es6-module 导出不是 working/recognized?

Why this es6-module export is not working/recognized?

我对模块 import/export 语法很生气...

在文件上说我想导入这样的模块:

import { AccordionMenu } from '../node_modules/lr-js-modules/accordion-menu';

现在,我应该如何从 accordion-menu 导出?我当前的代码是这样的老式 js class:

AccordionMenu = function(options){
[...]
}

AccordionMenu.prototype = { ... }

然后我是这样导出的:

export { AccordionMenu as default };

没用。编译器说

导出 'AccordionMenu'(导入为 'AccordionMenu')在“../node_modules/lr-js-modules/accordion-menu”中未找到(可能的导出:默认)

然后我尝试了几种变体,但 none 对我有用。据我所知,根据 mdn 文档,所有变体都应该有效,但很明显我做错了什么。

你能帮忙吗?

错误消息非常清楚:您导出 default 但您的导入尝试访问导出 AccordionMenu

你应该使用其中之一

export function AccordionMenu(options) { … }
// same as:
// function AccordionMenu(options) { … }
// export { AccordionMenu as AccordionMenu }

AccordionMenu.prototype = { … };

import { AccordionMenu } from '../node_modules/lr-js-modules/accordion-menu';
// same as:
// import { AccordionMenu as AccordionMenu } from '../node_modules/lr-js-modules/accordion-menu';

,如果该函数是该模块的唯一(或主要)导出,则使用默认导出

export default function AccordionMenu(options) { … }
// same as:
// function AccordionMenu(options) { … }
// export { AccordionMenu as default }

AccordionMenu.prototype = { … };

import AccordionMenu from '../node_modules/lr-js-modules/accordion-menu';
// same as:
// import { default as AccordionMenu } from '../node_modules/lr-js-modules/accordion-menu';

但是混合不起作用。