“导出默认自”不适用于Babel React

Ant*_*nko 6 javascript babel node.js npm reactjs

react用来构建组件库。我需要将一个index.js组件中的所有组件导入。

像这样:

MyComponents/
  Button.js
  Label.js
  index.js
Run Code Online (Sandbox Code Playgroud)

index.js我尝试下一步的内部:

// this export nothing
export {default} from './Button';
// this tells me about syntax error
export default from './Button';
Run Code Online (Sandbox Code Playgroud)

我发现只有这个解决方案有效

import Button from './Button';
export default Button;
Run Code Online (Sandbox Code Playgroud)

但是我发现一些React Component库使用了我上面(export default from './Button')提到的语法-并且它以某种方式起作用。看起来他们用一些东西babel-plugin-transform-*来做到这一点。

请找到我以找到如何将我的两行导入导出转换为的一行export ... from ...。谢谢。

PS最后,我需要这样做: import Button from './MyComponents';

Prz*_*ski 7

使用以下语法:

File: layouts/index.js

export {default as Flex} from './flex'
export {default as Grid} from './grid'
export {default as Dock} from './dock'
Run Code Online (Sandbox Code Playgroud)

那你可以用

import { Dock, Grid } from 'layouts'
Run Code Online (Sandbox Code Playgroud)

要么

import layouts from 'layouts'

<layouts.Flex >...</layouts.Flex>
Run Code Online (Sandbox Code Playgroud)

为了导出由上述方法创建的嵌套索引,可以使用export *语法:

File: icons/index.js

export * as action from './action';
export * as alert from './alert';
export * as av from './av';
Run Code Online (Sandbox Code Playgroud)

用法:

import * as icons from 'material/icons'

<icons.action.Close />
Run Code Online (Sandbox Code Playgroud)


Ant*_*nko 4

要使用此结构:

export default from './Button';
Run Code Online (Sandbox Code Playgroud)

我们需要使用preset-stage-1

如何使用

  1. npm install babel-preset-stage-1 --save-dev
  2. 编辑文件package.json并添加stage-1到.presetsbabel

的例子package.json

"babel": {
  "presets": [
    "es2015",
    "stage-1",
    "react"
  ]
},
Run Code Online (Sandbox Code Playgroud)

更多信息

这是对 ECMAScript 的提案 - https://github.com/leebyron/ecmascript-export-default-from (仍在审查中)