import Vue from 'vue'
// 自动导入components中的组件
const componentsContext = require.context('@/components', true, /index.vue$/)
componentsContext.keys().forEach((component) => {
const componentConfig = componentsContext(component).default
Vue.component(componentConfig.name, componentConfig)
})
核心是使用require.context:
require.context是webpack的一个api,通过require.context函数获取一个特定的上下文,主要用来实现自动化导入模块。如果需要从一个文件夹中引入很多模块文件,可以使用这个api,它会遍历文件夹中的指定文件,然后自动导入,使我们不再需要写大量显式的import导入
require.context 接受3个参数:
1、directory{ String } - 读取的文件夹路径
2、useSubdirectories { Boolean } - 是否遍历文件的子目录
3、regExp { RegExp } - 匹配文件的正则规则