webpack require context 说明

本文深入探讨了使用require和require.context动态加载模块的方法,包括变量require的局限性、webpack的context功能,以及如何自定义正则规则实现灵活的文件加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用require.context 可以动态引入文件

一,使用require

1,完全使用变量 require(variable)

     const filename = ' ./dir/first-level.js';

      const func = require(filename);   // error can not find module .
复制代码

2, 部分使用变量 require( prefix + variable + suffix)

const filename = ' ./dir/first-level.js';
const func = require( '' + filename);   // =>error  编译超时或内存 溢出导致webpack进程退出
复制代码

3, webpack自动创建一个context ,引入了所有路径符合^./dir.*$ 的文件。

生成的bundle.js 中打包了所有的文件的内容。如果目录下存在非js文件,则需要通过配置正确的loader来引入。

const filename = ' /first-level.js'
const func = require( '.dir' + filename);// success 成功获取文件内容
复制代码

4,webpack自动创建一个context ,引入了所有路径符合 ^./di.*$的文件,生成的bundle.js中打包了所有文件的内容

const filename = 'r/first-level.js';
const func = require('./di' + filename);//  success 成功获取文件内容
复制代码

5,webpack自动创建一个context,引入了所有路径符合 ./dir ^./.*.js$的文件,生成的bundle.js 中打包了所有文件的内容

const filename = 'first-level';
const func = require('./dir/' + filename + '.js'); //success
复制代码

二、使用require.context 自定义正则规则,自己写一个require.context 参数: (相对的文件目录,true :包含子目录中的文件,引入文件匹配的正则表达式)

const context = require.context('./dir',true ,/\.js$/);
const keys = context.keys();//   ["./anthor-level.js","first-level.js"]
const filename = './first-level.js';
const func = context(filename); // success
复制代码

转载于:https://juejin.im/post/5c6623e16fb9a049f66ca34a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值