Vite社区插件太少怎么办?
最近用 Vite 搭了个新项目,结果发现好多功能找不到现成的社区插件,比如我想加个 SVG 雪碧图合成功能,搜了一圈只有零星几个过时的包。
Webpack 时代随便一搜就有十几种方案,现在转到 Vite 反而有点手足无措。有没有人遇到类似问题?你们是怎么解决的?是自己写插件还是硬着头皮改配置?
我试过装 vite-plugin-svg-sprite,但装完报错说不兼容 Vite 5:
Error: vite-plugin-svg-sprite requires Vite ^4.0.0 but you have 5.1.2
现在卡在这儿了,感觉社区生态还没跟上……
Vite 插件本质上就是一个返回
plugin对象的函数,transform钩子能帮你处理任何文件。SVG 雪碧图这功能自己实现反而更可控,我给你个现成的方案:用的时候直接
import sprite from '@/assets/icons/sprite.svg'就成,Vite 会自动处理。效率更高的点在于:你不用再等第三方插件更新了,自己写的插件自己维护,Vite 升到 6、7 都能用。无非就是读写文件 + 正则提取 SVG 内容,几十行代码搞定的事儿。
如果你的 SVG 文件比较多或者路径结构复杂,稍微改改这个脚本就行,比找现成插件省心多了。
直接上代码,自己建个
svg-sprite.ts:用法:在
src/icons放SVG文件,然后二三十行搞定,比等社区更新快多了。Vite插件生态确实不如Webpack,但自己写真的没那么难,很多场景犯不着依赖第三方包。