require.context是webpack中,用來創(chuàng)建自己的(模塊)上下文
webpack會在構(gòu)建的時候解析代碼中的require.context()
require.context函數(shù)接收三個參數(shù):
要搜索的文件夾目錄
是否還應(yīng)該搜索它的子目錄
以及一個匹配文件的正則表達式
require.context(directory, useSubdirectories = false, regExp = /^\.\//);
// 示例
require.context('./test', false, /\.test\.js$/);
// (創(chuàng)建了)一個包含了 test 文件夾(不包含子目錄)下面的、所有文件名以 `.test.js` 結(jié)尾的、能被 require 請求到的文件的上下文。
創(chuàng)建了一個包含了test文件夾(不包含子目錄)下面的所有文件名以'.test.js'結(jié)尾的能被require請求到的文件上下文
案例探索之繼續(xù)深究
我們來結(jié)合一個例子看一下:
constfiles =require.context('./assets/images',false, /\.png$/);

iles可以看到,是一個函數(shù),意思就是說,require.context模塊導(dǎo)出(返回)一個(require)函數(shù)。
這個函數(shù)有三個屬性(沒錯又是3個,別忘了,函數(shù)也是對象,所以也是有屬性的):
resolve:是一個函數(shù),它返回請求被解析后得到的模塊 id。
keys:也是一個函數(shù),它返回一個數(shù)組,由所有可能被上下文模塊處理的請求組成。
id:是上下文模塊里面所包含的模塊 id. 它可能在你使用 module.hot.accept 的時候被用到