require.context批量导入

tech2022-07-17  169

require.context

如果想引入一个文件夹中的所有(或部分)文件,可以使用require.context方法来引入

使用方法

require.context(“文件路径”,“是否搜素子路径Boolean”,“匹配文件的正则表达式”)

返回

require.context() 返回的是一个function

const requireApi = require.context("./api",false,/\.js$/); console.log(requireApi)

想要获取到require回来的数据,还要 用requireApi.keys()获取到返回文件中所有文件的相对路径(相对上面代码框中./api的路径) 用requireApi('相对路径')获取文件内容

console.log(apiAll.keys()) console.log(apiAll.keys()[8]) console.log(apiAll(apiAll.keys()[8])) // 本例中选了数组中第八个文件路径来展示(别问我为啥选这个) // ceShi4.js module.exports.aaa = { bbb:111 }

例子

导入一个文件夹中的所有文件

const apiAll = require.context("./api",false,/\.js$/); let api = {}; apiAll.keys().forEach(item => { api[item.replace(/^\.\/(.*)\.js$/,'$1')] = apiAll(item); }); console.log(api)
不同的方法取得的参数

如果要兼容export default等写法,请看下边

export default
// ceShi1 export default { aaa: { bbb:111 } }
export
// ceShi2 export const aaa = { bbb:111 }
exports
// ceShi3 exports.aaa = { bbb:111 }
module.exports
// ceShi4 module.exports.aaa = { bbb:111 }
结果

最新回复(0)