如何在 index.js 桶中导出默认模块
How to export default modules in index.js barrels
我正在尝试使用 index.js 桶导出默认模块,但似乎无法正常工作。它适用于命名导出但不适用于默认导出。
简化的项目结构
/hellos
/components
Hello.js
Hellos.js
index.js
index.js
App.js
/hellos/component/Hellos.js
...
export default Hellos
/hellos/component/index.js
export * from './Hello';
export * from './Hellos';
/hellos/index.js
export * from './components'
export * from './actions'
export * from './constants'
export * from './reducers'
App.js
import Hellos from './hellos'
console.log(Hellos) // <- undefined
刚刚导入的 Hellos 模块始终未定义。
我可以使用命名导出或在 App.js 中直接导入来让它工作,即 import Hellos from './hellos/component/Hellos'
,但我认为这是不好的做法,只希望使用 import Hellos from '/hellos'
.
我怀疑 index.js 桶有问题,但我无法解决。请帮忙。
使用以下行:
export { default as MyModule } from 'src/MyModule'
希望它能满足您的需求,
干杯
对于使用 babel 的用户
在你的 .babelrc:
中像这样使用 babel-plugin-transform-export-extensions 插件
"plugins": [
"babel-plugin-transform-export-extensions",
"transform-es2015-modules-commonjs"
]
然后像这样安装插件:
npm install --save-dev babel-plugin-transform-export-extensions
npm install --save-dev babel-plugin-transform-es2015-modules-commonjs
然后你可以像这样在 index.js 中使用导出:
export simple from './simple';
export restClient from './jsonServer';
export * from './types';
对于那些使用早期 babel 版本的用户,只需使用 commonjs 模块。
我正在尝试使用 index.js 桶导出默认模块,但似乎无法正常工作。它适用于命名导出但不适用于默认导出。
简化的项目结构
/hellos
/components
Hello.js
Hellos.js
index.js
index.js
App.js
/hellos/component/Hellos.js
...
export default Hellos
/hellos/component/index.js
export * from './Hello';
export * from './Hellos';
/hellos/index.js
export * from './components'
export * from './actions'
export * from './constants'
export * from './reducers'
App.js
import Hellos from './hellos'
console.log(Hellos) // <- undefined
刚刚导入的 Hellos 模块始终未定义。
我可以使用命名导出或在 App.js 中直接导入来让它工作,即 import Hellos from './hellos/component/Hellos'
,但我认为这是不好的做法,只希望使用 import Hellos from '/hellos'
.
我怀疑 index.js 桶有问题,但我无法解决。请帮忙。
使用以下行:
export { default as MyModule } from 'src/MyModule'
希望它能满足您的需求, 干杯
对于使用 babel 的用户
在你的 .babelrc:
中像这样使用 babel-plugin-transform-export-extensions 插件 "plugins": [
"babel-plugin-transform-export-extensions",
"transform-es2015-modules-commonjs"
]
然后像这样安装插件:
npm install --save-dev babel-plugin-transform-export-extensions
npm install --save-dev babel-plugin-transform-es2015-modules-commonjs
然后你可以像这样在 index.js 中使用导出:
export simple from './simple';
export restClient from './jsonServer';
export * from './types';
对于那些使用早期 babel 版本的用户,只需使用 commonjs 模块。