Vue3+vite 中使用 svg-icon
Start
在 Vue3+vite 项目中想要通过全局引入的方式,使用 svg-icon 时,发现不兼容 Vue2 的使用方法,故有了以下的探索:
Solve
一、使用 svg-icon ,并以全局引入,可以参考 vue-element-admin 中的方案,见 Link 1 二、想要在 Vue3 中使用,需要修改:详见 Link 3 中的参考博客;svg-sprite-loader 原修改文件,需查看 Link 2。
Trouble
当使用修改后的 svg-sprite-loader 时,可能会有报错,如下:
ERROR: no such file or directory, open ./src/icons/svgstar.svg at ...
提示打开文件失败,需要修改下~
-
当前的问题:node.js 文件读取路径有问题 我的预期是:修改后的 svg-sprite-loader,需要读取到 ./src/icons/svg 目录中的 star.svg 文件
所以我需要修改 中的 const svg = readFileSync(dir + dirent.name) 为: const svg = readFileSync(dir + / + dirent.name)
此时,路径就是目标值啦:./src/icons/svg/star.svg,我的 star 图标组件可正常显示了。
Link
- 全局 Svg Icon 图标组件:
- How to use svg-sprite-loader with vite:
- 参考博客: