Uncaught Referencerror: require is not defined

https://huaweicloud.csdn.net/638f143ddacf622b8df8eec0.html?spm=1001.2101.3001.6650.6&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Eactivity-6-125678833-blog-119806144.235%5Ev38%5Epc_relevant_default_base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Eactivity-6-125678833-blog-119806144.235%5Ev38%5Epc_relevant_default_base&utm_relevant_index=10https://huaweicloud.csdn.net/638f143ddacf622b8df8eec0.html?spm=1001.2101.3001.6650.6&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-6-125678833-blog-119806144.235%5Ev38%5Epc_relevant_default_base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-6-125678833-blog-119806144.235%5Ev38%5Epc_relevant_default_base&utm_relevant_index=10

在框架中使用是会报错的。例如如下代码:就会得到报错:那么在中,如何找到对应的方法呢?就可以使用或者方法了。为动态导入,构建时,会分离为独立的 chunk;而为直接引入。

vue3+vite+ts框架中使用require.context是会报错的。例如如下代码:

const requireApi = require.context(
	// api 目录的相对路径
	'.',
	// 是否查询子目录
	false,
	// 查询文件的一个后缀
	/.js$/
)
console.log(requireApi)

就会得到报错:
在这里插入图片描述

那么在vue3+vite+ts中,如何找到对应的方法呢?

就可以使用import.meta.globEage或者import.meta.glob方法了。


import.meta.glob 为动态导入,构建时,会分离为独立的 chunk;而import.meta.globEager为直接引入。

const module = {}
const files = import.meta.globEager('./*.js') 
Object.keys(files).forEach((key,index) => {
	if([key] === './index.js') return
	//console.log(key) //输出./list.js
	//console.log(files[key]) //输出{get_label: ƒ, get_list: ƒ}
	Object.assign(module,files[key]) 
})
//解释:如果是key则打印出一个个单个字符,所以这里用了[key]则打印出一个字符串

export default module

而直接使用require.context时,则如下操作即可:

let module = {}
requireApi.keys().forEach((key,index)=>{
	if(key === './index.js') return
	console.log(key);
	Object.assign(module,requireApi(key))
})

export default module

require.context参数介绍
require.context(directory,useSubdirectories,regExp)

directory:表示检索的目录
useSubdirectories:表示是否检索子文件夹
regExp:匹配文件的正则表达式,一般是文件名

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值