javascript - 导出 JS 模块而不先导入它

标签 javascript es6-modules

我的 JS 组件具有以下结构:

/components
  /Menu
    /Menu.js
    /Menu.test.js
    /index.js
  /MenuItem
    /MenuItem.js
    /MenuItem.test.js
    /index.js

我们的想法是,我们可以为每个组件创建一个文件夹,其中可以包含测试(以及可能的其他文件),然后如果我们只想导入该组件,我们可以依赖使用 index.js 处理目录导入,而不必直接引用文件夹内的类。

例如:

菜单.js

class Menu extends Component {
  // ... more code ..
}
export default Menu;

index.js

export default from './Menu';

然后可以这样使用:

import Menu from './components/Menu';

但是我发现这不起作用并且找不到模块...

因此,要解决此问题,我必须在导出之前将 Menu 导入到 index.js 中:

import Menu from './Menu';
export default Menu;

但是在查看其他项目如何构建其代码后,我发现他们正在使用前者而无需再次导入...

例如:https://github.com/IBM/carbon-components-react/blob/master/src/components/Breadcrumb/index.js

看看他们如何从面包屑中导出而无需先进行导入...他们是如何实现这一点的?

最佳答案

如果您检查提供的example ,你会看到他们使用 这个babel plugin .

所以你可以向你的 babel 插件堆栈添加一个。

或者,您可以考虑仅使用 export {default} from "./destination"; 形式按原样工作。

关于javascript - 导出 JS 模块而不先导入它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54672948/

相关文章:

javascript - 将 Babel 外部助手与 ES6 模块一起使用时出现问题 - Babel 重新排序导入/导出会破坏执行顺序

plugins - Rollup & Plugins 可以将大多数遗留库转换为 es6 模块吗?

javascript - 第一项后 IntelliSense 在 React Native 样式表中不起作用

javascript - 如何将自定义数据传递给我的 Mocha 测试?

javascript - 如何在 vue 中使用 gettext 翻译文本?

node.js - 如何从 vm.SourceTextModule 中获取默认导出?

reactjs - 将 Webpack React 库 bundle 为 ESM 模块 - 在非对象上调用 Object.defineProperty

javascript - IE 中的 onclick ="window.open"问题

javascript - 如何创建具有动态数量的网格列的 TailwindCSS 网格?

javascript - 语法问题 : printing a link with variables