https://webpack.js.org/guides/dependency-management/
一、對context進行介紹, 當require語句中是表達式時


webpack發現require中是一個表達式,
會創建一個context(module)


創建的context包含了目錄下所有模塊的引用

Request,值的是require表達式中間的那個值的部分
=============================================================================
二、自定義一個context(module),下面對require.context進行介紹:

The syntax is as follows:
require.context(directory, useSubdirectories = false, regExp = /^\.\//)
Examples:
require.context("./test", false, /\.test\.js$/);
// a context with files from the test directory that can be required with a request endings with `.test.js`.
require.context("../", true, /\.stories\.js$/);
// a context with all files in the parent folder and descending folders ending wit...
require.context返回一個函數對象(也就是說,context module是一個函數對象):

(或者下面拆開的寫法:)

函數可以接收一個參數:request。
該函數對象有三個屬性:resolve, keys, id。
- resolve 是一個函數,它返回 request 被解析后得到的模塊 id。
- keys 也是一個函數,它返回一個數組,由所有可能被此 context module 處理的請求
- id 是 context module 里面所包含的模塊 id.

files.resolve:

files.keys:

files.id:

用法:

解析:
let req = require.context
req是返回的函數對象,這個對象能被調用(因為是函數對象) ,就是一個require函數
這個對象也有三個屬性resolve,keys,id
用上面的方法可以將目錄下的所有文件一次性處理,引入,不用一個一個去寫require引入。
