动态导入封装的模块的方法
具体架构应为,使用的方法为webpack的require的context()
require.context(directory,useSubdirectories,regExp)
1.directory(必需):要搜索的目录,可以是相对路径或绝对路径。
2.useSubdirectories(可选):布尔值,指示是否还应该搜索子目录。默认值为true。
3.regExp(可选):一个正则表达式,用于匹配要导入的文件名。
require.context()返回一个函数,该函数具有三个属性:
1.resolve:接受一个参数(请求的模块路径),返回模块的解析路径。
2.keys:返回指定上下文中所有模块的路径数组。
3.id:上下文模块的标识符。
test
|---modules
|---dicts.js
|---orgTree.js
|---index.js
------------------index.js-----------------------
// 动态引入方法
const reqContext = require.context('./modules', false, /\.js$/)
const moduleObj = {}
reqContext.keys().forEach((key) => {
const name = key.replace(/\.\/(.+)\.js$/, '$1')
moduleObj[name] = reqContext(key)
})
module.exports = moduleObj
------------------dicts.js------------------
import { post } from 'bw-utils/src/business/request/http'
const getSysDict = (data) => {
return post({ url: '/sys/getSysDictBatch', prefix: '/moirai', data })
}
module.exports = getSysDict
------------------orgTree------------------
import { post } from 'bw-utils/src/business/request/http'
let orgResult = null
const getOrgTree = async (data) => {
if (orgResult) return orgResult
orgResult = await post({
url: '/orgAndrole/getUserAuthOrgTree',
prefix: '/moirai',
data
})
return orgResult
}
module.exports = getOrgTree
3.文件中使用方法
import {getSysDict,getOrgTree} from "@/api"

浙公网安备 33010602011771号