动态导入封装的模块的方法

具体架构应为,使用的方法为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"
posted @ 2024-09-12 11:14  新时代的搬砖人  阅读(20)  评论(0)    收藏  举报