require.context 是webpack中危号,用來(lái)創(chuàng)建自己的(模塊)上下文
webpack會(huì)在打包構(gòu)建代碼中解析
require.context接收三個(gè)參數(shù):
1、要搜索的文件夾目錄
2歹啼、是否搜索它的子目錄
3、以及一個(gè)匹配文件的正則表達(dá)式
const modulesFiles = require.context('./modules', true, /\.js$/)
在項(xiàng)目中,如果自定義了很多組件今布,使用這個(gè)就很方便:
moudles模塊拆分之后,文件很多拭抬,分別引入部默,導(dǎo)致代碼量增多,這個(gè)時(shí)候就可以使用require.context 來(lái)搞定
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
},()}
打印modules可以看出 所有js文件內(nèi)容 可以全部拿到造虎,這就很nice傅蹂。