DayDayUp(一)---require.context

149 阅读1分钟

require.context

require.contextwebpackapi,功能是遍历文件夹中的指定文件,然后自动导入。

语法

require.context(directory, useSubdirectories, regExp)

参数:

  1. directory:参数为String,表示读取文件的路径
  2. useSubdirectories:参数为Boolean,表示是否遍历文件的子目录
  3. regExp:参数为RegExp ,表示匹配文件的正则

context module API

require.context执行后返回一个函数

  • 这个函数接收一个req参数,req为导入模块的相对路径(keys属性获取),返回值为导入的模块,可通过default属性获取模块的默认导出

  • 这个函数有3个属性

    • id:为String,上下文执行模块的id,官网介绍用处在module.hot.accept
    • resolve:是一个Function,接受一个参数reqreq为导入模块的相对路径(keys属性获取),返回值为此模块相对于项目的相对路径
    • keys:也是一个Function,没有参数,返回值为导入模块组成的数组(导入模块的相对路径组成的数组)
const modules = (r => r.keys().map(key => r(key).default))(require.context('./components/', true, /\.js$/))