我使用react
来构建我的组件库。我需要index.js
在一个地方导入所有组件。
这样的事情:
MyComponents/
Button.js
Label.js
index.js
我在index.js
内尝试了下一步:
// this export nothing
export {default} from './Button';
// this tells me about syntax error
export default from './Button';
我发现只有这个解决方案有效
import Button from './Button';
export default Button;
但是我发现一些React Component库使用了我上面提到的语法(export default from './Button'
) - 它以某种方式工作。看起来他们使用了一些babel-plugin-transform-*
来执行此操作。
请找我找到如何将我的两行导出导出转换为一行export ... from ...
。谢谢。
P.S。最后,我需要这样做:import Button from './MyComponents';
答案 0 :(得分:3)
使用以下语法:
File: layouts/index.js
export {default as Flex} from './flex'
export {default as Grid} from './grid'
export {default as Dock} from './dock'
然后你可以使用
import { Dock, Grid } from 'layouts'
或
import layouts from 'layouts'
<layouts.Flex >...</layouts.Flex>
为了导出由上述方法创建的嵌套索引,您可以使用export *
语法:
File: icons/index.js
export * as action from './action';
export * as alert from './alert';
export * as av from './av';
用法:
import * as icons from 'material/icons'
<icons.action.Close />
答案 1 :(得分:1)
使用这种结构:
npm install babel-preset-stage-1 --save-dev
我们需要使用preset-stage-1。
package.json
stage-1
并将presets
添加到babel
中的package.json
部分。"babel": {
"presets": [
"es2015",
"stage-1",
"react"
]
},
{{1}}
它是ECMAScript的提案 - https://github.com/leebyron/ecmascript-export-default-from (仍在审核中)。
答案 2 :(得分:0)
只需使用export * from "./Button";
导出整个模块即可。这将有助于您的使用案例。
不幸的是,没有单行语法只导出另一个模块的默认值。