``
plugin/index.js :
/**
* require.context接收三个参数,1- 组件存放位置, 2- 布尔值,是否读取子文件夹中的组件, 3- 正则匹配所有vue文件
*/
const importFn = require.context('./components/',false,/\.vue$/)
/**
* 插件核心,vue插件会调用install方法,其中方法体中就是引入所有组件内容
*/
export default {
install(vm) {
importFn.keys().forEach(path => {
//根据路径拿到组件实例,注册到vm上
const component = importFn(path).default
vm.component(component.name,component)
})
}
}
main.js :
import Vue from "vue"
import Plugin from "./plugin/index"
Vue.use(Plugin)