为啥我不能使用 BabelJS 使用“import ... as”导入默认导出

Posted

技术标签:

【中文标题】为啥我不能使用 BabelJS 使用“import ... as”导入默认导出【英文标题】:Why can't I import a default export with "import ... as" with BabelJS为什么我不能使用 BabelJS 使用“import ... as”导入默认导出 【发布时间】:2015-09-14 12:38:52 【问题描述】:

在 BabelJS 的 5.6.4 版本中,我似乎无法“import ... as”。以下是我正在尝试做的示例:

在文件'test.js'中:

export default class Test ;

在文件'test2.js'中(在同一目录中):

import Test as Test2 from './test';

我也试过这样做:

import Test as Test2 from './test';

尽管它在这里什么也没说: http://babeljs.io/docs/learn-es2015/#modules

并且只在非默认语法中使用括号: https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Statements/import

有人成功过吗?

编辑:这绝对是因为default 关键字。因此,在这种情况下,问题就变成了,是否有人有任何指向文档的链接指出我不应该能够为默认导入设置别名? ECMA 或 Babel。

【问题讨论】:

相关:How can I alias a default import in Javascript? 【参考方案1】:

您可以通过任一方式导入默认导出

import Test2 from './test';

import default as Test2 from './test';

默认导出没有 Test 作为您需要别名的名称 - 您只需以您想要的名称导入默认值。

到目前为止,我发现的最好的文档是 Axel Rauschmayers 博客中的文章 ECMAScript 6 modules: the final syntax

【讨论】:

啊默认...让我试试。 效果很好!谢谢你。 Rauschmayers 博士的博客,顺便说一句,我认为一个足够可靠的来源可以作为规范。 您也可以查看the spec,但我认为该博客更具可读性:-) 来自 MDN,看起来你也可以这样做 import * as Test2 @merlinpatt 然后你必须使用Test2.default - 它是一个模块命名空间对象。

以上是关于为啥我不能使用 BabelJS 使用“import ... as”导入默认导出的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的电影不能使用 MPMoviePlayerController 播放?

为啥 webpack 不能导入 PrimeReact CSS 文件?

发布使用 webpack 和 babeljs 构建的 npm 包

在 Babeljs 配置中使用原生 ECMAScript 模块

为啥不能加载块?

在vue中import()语法为啥不能传入变量