自动化导入模块:require.context

require.context是webpack的API,用于自动化导入模块,避免手动引入的繁琐。它接受目录、是否搜索子目录和匹配文件的正则表达式作为参数。返回的require函数有resolve、keys和id三个属性,分别用于获取模块相对路径、所有可能的请求和模块ID。本文通过实例展示了如何自动化导入组件和Vuex模块,提供完整项目代码,适用于组件、路由、接口模块等的自动化导入。
摘要由CSDN通过智能技术生成

在日常引入组件,模块的时候,其实目录格式都差不多,能不能一键引入所有呢?require.context 可以帮助我们实现这个功能。需要 webpack (或在内部使用了 webpack 的 Vue CLI 3+)

传统引入,如果文件有很多,就会很麻烦,而且后期每加一个文件,需要再导入一次

import moduleA from './modules/moduleA.vue'
import moduleB from './modules/moduleB.vue'
import moduleC from './modules/moduleC.vue'


export default {
   
  components: {
   
    moduleA,
    moduleB,
    moduleC
  }
}

接下来文章会介绍利用require.context,实现自动导入模块供能,解放我们的双手。

首先先介绍一下 require.context~

require.context是什么

一个webpack的api, 通过执行require.context函数获取一个特定的上下文,主要用来实现自动化导入模块,在前端工程中,如果遇到从一个文件夹引入很多模块的情况,可以使用这个api,它会遍历文件夹中的指定文件,然后自动导入,使得不需要每次显式的调用import导入模块

require.context 方法

require.context 函数接受三个参数

  • directory{String} - 要搜索的目录

  • useSubdirectories {Boolean} - 是否还搜索其子目录

  • regExp {RegExp} - 匹配文件的正则表达式

语法如下:

require.context(
  directory,
  (useSubdirectories = true),
  (regExp = /^\.\/.*$/),
  (mode = 'sync')
);

借用 webpack 官网例子

require.context("./test", false, /\.test\.js$/);
// 遍历当前目录下的test文件夹下的所有以 ‘.test.js’ 结尾的文件,不遍历子目录
require
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值