require.context()实现自动话导入文件

Posted GHUIJS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了require.context()实现自动话导入文件相关的知识,希望对你有一定的参考价值。

require.context是什么?

它是webpack的一个api,通过require.context函数获取一个特定的上下文,主要用来实现自动化导入模块。如果需要从一个文件夹中引入很多模块文件,可以使用这个api,它会遍历文件夹中的指定文件,然后自动导入,使我们不再需要写大量显式的import导入;

模块方法(module methods) | webpack 中文网

require.context的语法使用

require.context 接受3个参数:

  1、directory String - 读取的文件夹路径

  2、useSubdirectories Boolean - 是否遍历文件的子目录

  3、regExp RegExp - 匹配文件的正则规则

语法: require.context ( directory, useSubdirectories = false, regExp = /^.// )

这里用于自动引入路由文件

import  createRouter, createWebHistory, RouteRecordRaw  from 'vue-router';

const routes: Array<RouteRecordRaw> = [];

require.context('./modules', false, /\\.ts/).keys().forEach((RouteName) => 
	routes.push(require.context('./modules', false, /\\.ts/)(RouteName).default);
);

const router = createRouter(
  history: createWebHistory(process.env.BASE_URL),
  routes,
)

export default router,

还常用于自动导入组件,静态资源(如:svg);

以上是关于require.context()实现自动话导入文件的主要内容,如果未能解决你的问题,请参考以下文章

利用webpack的 require.context api进行自动导入

require.context的用法。路由规则的自动化导入

Vue使用高级技巧

require.context

得心应用的Vue高级技巧---vue中文社区

webpack的带表达式require和require.context()方法