javascript 如何导出index.js桶中的默认模块

cngwdvgl  于 2023-06-28  发布在  Java
关注(0)|答案(3)|浏览(152)

我尝试使用index.js bakers导出默认模块,但似乎无法正常工作。它适用于命名导出,但不适用于默认导出。
简化项目结构

/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桶上,但我无法解决。请帮帮我

ztmd8pv5

ztmd8pv51#

使用以下行:

export { default as MyModule } from 'src/MyModule'

希望它能满足你的需求,干杯

qfe3c7zg

qfe3c7zg2#

    • 对于使用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,简单地像这样:

export simple from './simple';
export restClient from './jsonServer';
export * from './types';

对于那些使用早期babel版本的用户,只需使用commonjs模块。

vlju58qv

vlju58qv3#

为了完整起见,也可以先导入它们,然后以导入的名称导出它们:

import Something from "./somewhere/whatever";

export { Something };

相关问题