在使用vue-element-admin实现后台管理系统的时候,发现了require.context的好处,自动引入同一文件夹下的多个文件
在项目中是用来引入了 store下的modules中的所有 *.js文件
目录结构如下。
import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
Vue.use(Vuex)
// https://webpack.js.org/guides/dependency-management/#requirecontext
const modulesFiles = require.context('./modules', true, /\.js$/)
// you do not need `import app from './modules/app'`
// it will auto require all vuex module from modules file
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
// set './app.js' => 'app'
// 忽略第1个js
const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
// 执行modulesFiles函数,返回一个对象{default: {// 文件内容}, _esModule: true}
const value = modulesFil