代码之家  ›  专栏  ›  技术社区  ›  rook99

如何从文件夹导入所有Vue组件?

  •  0
  • rook99  · 技术社区  · 5 年前

    我正在尝试从文件夹中自动加载Vue的所有组件, 如果我 不要使用 “VUE” Async Components “。

    一旦我尝试使用异步组件 进口 …我得到这个错误:

    10:11-36 Critical dependency: the request of a dependency is an expression
    

    加载生成此错误的所有组件的代码:

    const ComponentContext = require.context('./', true, /\.vue$/i);
    
    ComponentContext.keys().forEach((componentFilePath) => {
    
        const componentName = componentFilePath.split('/').pop().split('.')[0];
        Vue.component(componentName, () => import(componentFilePath));
    
    });
    

    如何解决这个问题?或者有其他方法来完成这个任务吗?

    2 回复  |  直到 5 年前
        1
  •  0
  •   ali.turan    5 年前

    而不是

    Vue.component(componentName, () => import(componentFilePath));
    

    尝试

    Vue.component(componentName, ComponentContext(componentFilePath));
    

    Vue.component(componentName, ComponentContext(componentFilePath).default);
    

    不确定默认零件。

        2
  •  0
  •   rook99    5 年前

    好吧,我需要在下面加上“懒”字:

    const ComponentContext = require.context('./', true, /\.vue$/i, 'lazy');
    

    然后:

    Vue.component(componentName, () => ComponentContext(componentFilePath));