Vue项目中利用webpack的require.context实现批量引入/导入图片

1. 背景

前端项目中难免会有需要几十种icon或者png等类型的图片的情况,如果一个个import未免太过繁琐。而webpackrequire.context可以解决这种困扰。

2. 结构

静态资源位置和结构:
在这里插入图片描述
在这里插入图片描述
如图,我的目标是将mapDot中的十几个png图片批量导入,并且准确快捷的获取到。

3. index.js实现

const req = require.context('./mapDot', true, /\.png$/);
const pngHashMap = new Map();
req.keys().forEach((eachPng) => {
  const imgConfig = req(eachPng);
  const imgName = eachPng.replace(/^\.\/(.*)\.\w+$/, '$1');
  pngHashMap.set(imgName, { imgName, icon: req(eachPng).default || imgConfig });
});
export default pngHashMap;

这里用Map结构存取了一下,方便导入后使用。

4. 导入并使用

import pngHashMap from '../../assets/images';
console.log(pngHashMap)

在这里插入图片描述
如图,最后获取到了base64格式的图片

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值