【前端笔记】小记一次Antd Vue 1.x (for vue2.x) icons组件按需引入的实现

5 篇文章 1 订阅
2 篇文章 0 订阅

因为项目有样式规范要求,和规范最相似的就是antd了,再加上项目用的是2.x,所以使用antd 1.x版本进行开发。项目完成后,理所应当对打包进行优化,于是遇到了icons组件全量引入的问题,查找了资料实现后特地记录一下(别问为什么不用vue3,因为项目太赶,就挑了最顺手的vue2.x)

antd vue按需引入已经不用再多说了,按照官网一步步的实现基本不会出现问题。问题主要是出现在icons组件上。

首先,通过webpack-bundle-analyzer插件对打包产物进行分析,可以看到@antd-vue/icons的占比非常的大,经过gzip压缩后都有差不多150kb的大小。再看看ant-design-vue中的引入
在这里插入图片描述
可以看到源码里是全量引入的。

优化

1、安装对应版本的@ant-design/icons

从全量改完按需引入首先得把它的依赖装上,至于装的什么版本,可以从node_modulesant-design-vuepackage.json查看当前依赖的版本。我这里用的是1.7.8的版本,对应的icons版本是2.1.1

2、新建统一的图标js

这一步是将需要按需引入的图标进行统一管理并导出使用。例如:

export { default as LeftOutline } from '@ant-design/icons/lib/outline/LeftOutline';
3、vue.config.js配置

找到configureWebpack配置,并添加resolve.alias配置,如下:

// 对象
configureWebpack: {
	resolve: {
		alias: '@ant-design/icons/lib/dist$': '${path}',
	}
}
// 函数
configureWebpack: config => {
	config.resolve.alias: {
		alias: '@ant-design/icons/lib/dist$': '${path}',
	}
}

${path}:第二步时自定义的图标js文件路径(例如:path.join(__dirname, ‘xxx/xxx/xxx.js’))
这一步是网上所有方法中通用的,作用是将图标引用路径指向为自己定义的地方,这样webpack之后打包就只会打包我们在自定义js中定义导出的图标。

总结
  • 1、下载的@ant-design/icons版本要和当前使用的@ant-design-vue对得上。如果不知道对应版本可以按照我上面提到的方法查看
  • 2、自定义导出图标的文件路径一定要对上(可能和本篇的不同,因为版本区别)。如果发现报错Can't resolve '@ant-design/icons/lib/outline/xxx' in xxxx,先看node_modules中这路径存不存在,再看下载的版本对不对,一般检查这2个足以排查出问题
  • 3、因为图标转成按需引入了,一定一定记得用到的图标或者疑似用到的图标都要引入,比如Loading。不知道引入图标的名称可以去node_modules中查看对应的js
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值