require.context()require.context()MDNrequire.context(directory,useSubdirectories,regExp)//例子require.context('./test',false,/\.test\.js$/);//(创建)上下文,其中文件来自测试目录,请求以.test.js结尾。directory:要搜索的目录是否为正则表达式,在其子目录中搜索匹配的文件。上下文模块将导出一个可以接收参数的(require)函数:request。这个导出函数具有三个属性:resolve、keys、id。resolve是一个函数,返回请求解析后得到的模块id;keys也是一个函数,它返回一个数组,该数组由所有可能被彼此的上下文模块处理的请求组成;id是上下文模块中包含的模块ID。它可能在你使用module.hot.accept时在Used中。示例:导入一个文件夹下的所有js文件'));变量缓存={};functionimportAll(r){r.keys().forEach(key=>cache[key]=r(key));}importAll(require.context('../components/',true,/\.js$/));//在构建时(build-time),所有需要的模块都会被填充到缓存对象中。译:store/index.jsimportVuefrom'vue'importVuexfrom'vuex'importpermissionfrom'./modules/permission'importuserfrom'./modules/user'importtagsViewfrom'./modules/tagsView'importroleManagefrom'./modules/roleManage'importuserManagefrom'./modules/userManage'importgettersfrom'./getters'Vue.use(Vuex)conststore=newVuex.Store({modules:{permission,user,tagsView,roleManage,userManage},getters,strict:false})exportdefaultstore修改:可以使用require.contextimportVuefrom'vue'importVuexfrom'vuex'importgettersfrom'./getters'constmodulesFiles=require.context('./modules',false,/\.js$/)constmodules=modulesFiles.keys().reduce((modules,modulePath)=>{constmoduleName=modulePath.replace(/^\.\/(.*)\.\w+$/,'$1')constvalue=modulesFiles(modulePath)modules[moduleName]=value.defaultreturnmodules},{})Vue.use(Vuex)conststore=newVuex.Store({modules,getters,strict:false})导出默认值商店
