Как экспортировать все компоненты с require? - PullRequest
0 голосов
/ 25 января 2019

Я создаю приложение Vue js, в котором мне нужно экспортировать все файлы / компоненты из определенного каталога и импортировать эти файлы / компоненты в файл, т. Е. path.js.

Как мне экспортировать компоненты, если я require всех их в index.js, чтобы я мог получить к ним доступ в path.js как import {Component1,Component2} from index.js?

Примечание : Я не хочу явно включать компоненты в index.js с ключевым словом import, поэтому я использовал require.

index.js

import upperFirst from "lodash/upperFirst";
import camelCase from "lodash/camelCase";


const requireComponent = require.context(".", true, /\.vue$/); // used to fetch Component1.vue and Component2.vue
const components = {};


requireComponent.keys().forEach(fileName => {
  const componentConfig = requireComponent(fileName);
  const componentName = upperFirst(
    camelCase(fileName.replace(/^\.\//, "").replace(/\.\w+$/, ""))
    );
  
  components[componentName] = requireComponent(fileName).default;
  
});
export default components;

paths.js

import {Component1,Component2} from 'index.js';'

console.log(Component1); // undefined

Я пытался экспортировать компоненты как export {...components}, но это выдает ошибку.

Ответы [ 2 ]

0 голосов
/ 25 января 2019

В Index.js нет такой вещи как Component1 или Component2, но я думаю, я знаю, что вы ищете.

Этого можно добиться с помощью именованных экспортов и импортов.

Простой пример ниже:

index.js

export {components[0] as Component1};
export {components[1] as Component2};

export default components;

paths.js

    import {Component1, Component2} from 'index.js';
    //some code
0 голосов
/ 25 января 2019

Это должен быть

компонент импорта из 'index.js'

Поскольку вы экспортировали его только в одно постоянное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...