为什么我无法从模块中导出命名导出?

时间:2017-05-23 23:55:30

标签: javascript ecmascript-6 es6-modules

我想从我的模块FooBar导出两件事。如何将Foo导出为默认导出Bar作为正常导出?

我试过这个但是没有用:

export Bar;
export default Foo;

1 个答案:

答案 0 :(得分:2)

你有一个语法错误,这就是为什么它没有导出命名导出。导出命名导出时,正确的语法是:

!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'PIXEL_ID_2'); // Insert your 2nd pixel ID here.
fbq('track', 'PageView');

您需要围绕命名导出的大括号,如下所示:

export { name1, name2, …, nameN };

这是将export { Bar }; export default Foo; 导出为命名导出的正确语法。请阅读MDNBar的文档。

请注意,您的术语是错误的。模块是JavaScript文件。您导出的内容(变量,函数等)是名称,而不是模块本身。您导出名称,而不是模块。