• webpack 中 require.context() 多个模块的加载


    require.context (param1,param2,param3)

    参数:param1:要检索的目录

       param2:是否检索子目录

       param3:匹配文件的正则表达式,一般是文件名

    返回:返回一个require 函数,该函数有三个属性:resolve , keys , id ;

      resolve : 是一个函数,返回的的被解析模块的id,接受一个参数request

      keys: 也是一个函数,返回一个数组,该数组是由所有可能被上下文模块解析的请求对象组成

      id:上下文模块的id

    const path = require('path')
    const files = require.context('@/components/login', false, /.vue$/)
    const modules = {}
    files.keys().forEach(key => {
        const name = path.basename(key, '.vue')// 提取出用 ‘/' 隔开的path的最后一部分,path.basename(p, [ext])。 p要处理的path,ext要过滤的字符
        modules[name] = files(key).default || files(key)
    })
    components:modules

    files此时是一个函数

    files.keys()属性方法执行后会返回一个数组:["./aaa.vue", "./bbb.vue", "./ccc.vue", "./ddd.vue"]

    files.resolve('./aaa.vue')属性方法传入一个login文件下的相对路径('./aaa.vue')会返回匹配到的文件的绝对路径("./src/components/login/aaa.vue")

  • 相关阅读:
    iOS集成ijkplayer视频直播框架,遇到的bug和坑...
    push notification获取device token
    ios xcode Code signing failed 解决方案
    ios 返回指定导航控制器
    ios git 终端提交
    mysql问题集合
    mysql 备份和恢复
    cacti 异常问题
    硬盘各项检测
    LVS DR模式(直接路由模式)
  • 原文地址:https://www.cnblogs.com/gamecc666/p/14347524.html
Copyright © 2020-2023  润新知