require.context 是webpack中,用来创建自己的(模块)上下文
webpack会在打包构建代码中解析
require.context接收三个参数:
1、要搜索的文件夹目录
2、是否搜索它的子目录
3、以及一个匹配文件的正则表达式
const modulesFiles = require.context('./modules', true, /\.js$/)
在项目中,如果自定义了很多组件,使用这个就很方便:
image.png
moudles模块拆分之后,文件很多,分别引入,导致代码量增多,这个时候就可以使用require.context 来搞定
import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
Vue.use(Vuex)
const modulesFiles = require.context('./modules', true, /\.js$/)
// 这里使用了reduce 不理解可自行百度
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
const value = modulesFiles(modulePath)
modules[moduleName] = value.default
return modules
},()}
image.png
打印modules可以看出 所有js文件内容 可以全部拿到,这就很nice。
网友评论