Экспорт модуля JS без его импорта - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть следующая структура для моих компонентов JS:

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

Идея в том, что у нас может быть папка для каждого компонента, которая может содержать тест (и, возможно, другие файлы), а затем, если мы просто хотим,для импорта компонента мы можем положиться на использование index.js для обработки импорта каталога без прямой ссылки на класс внутри папки.

Так, например:

Menu.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

Посмотрите, как они экспортированы из Breadcrumb без необходимости делатьимпортировать сначала ... как они достигли этого?

1 Ответ

0 голосов
/ 13 февраля 2019

Если вы проверите предоставленный пример , вы увидите, что они используют этот babel плагин .

Таким образом, вы можете добавить один в свой плагин babel.

Кроме того, вы можете использовать только форму export {default} from "./destination";, которая работает как есть.

...