Vite官方提供的 import.meta.glob API。
这个方法一般用于批量引入js、ts或者.vue .tsx .png等文件,但实际上这个方法就是很多import语句的集合而已,import是可以引入图片的,所以import.meta.glob 也同样可以引入图片资源。
import.meta.glob支持字符串和数组作为参数,使用方式如下。
首先是获取图片,这里参数先用字符串:
const imgs=import.meta.glob('@/assets/images/**.{png,jpg}') //收集图片
//返回的是对象,路径作为key,promise作为值,需要使用then获取真实路径
//获取其中一张
const imgWay=imgs['/src/assets/images/xx.png'];
//由于返回的是promise,需要then一下
imgWay && imgWay().then((res:any)=>{
console.log(res); //真实路径
})
接下来是获取组件(.vue,.tsx),这里参数是数组:
const components=import.meta.glob(
['@/view/**/**.{vue,tsx}','@/pages/**/**.{vue,tsx}']
)
//返回的也是路径为key,promise为值。如果使用路由懒加载,可以直接使用promise作为组件。不懒加载也可以then一下