vue3+vite npm 报错 createSvgIconsPlugin is not a function 异常处理
·
一、异常错误
本地运行vue3+vite项目,使用到了svg,npm 安装和运行报错,错误信息显示:createSvgIconsPlugin is not a function,这表明插件的导入方式或版本存在问题。
二、原因
这是因为vite-plugin-svg-icons插件版本过旧导致的。根据错误信息和package.json,当前使用的是0.1.0版本,这个版本与Vite 7.x不兼容。
三、解决方法
方案1:升级vite-plugin-svg-icons插件(推荐)
升级到与Vite 7.x兼容的版本:
pnpm install vite-plugin-svg-icons@^2.0.1 -D
方案2:修改导入方式
如果升级后仍有问题,可能需要修改中的导入方式:
vite.config.ts
import { resolve } from 'path'
import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import { VitePWA } from 'vite-plugin-pwa'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
function setupPlugins(env) {
return [
vue(),
env.VITE_GLOB_APP_PWA === 'true' && VitePWA({
injectRegister: 'auto',
manifest: {
name: 'chatGPT',
short_name: 'chatGPT',
icons: [
{ src: 'pwa-192x192.png', sizes: '192x192', type: 'image/png' },
{ src: 'pwa-512x512.png', sizes: '512x512', type: 'image/png' },
],
},
}),
createSvgIconsPlugin({
// 指定需要缓存的图标文件夹
iconDirs: [resolve(process.cwd(), 'src/assets/icons')],
// 指定 symbolId 格式
symbolId: 'icon-[name]',
}),
].filter(Boolean);
}
export default defineConfig(({ mode }) => {
const viteEnv = loadEnv(mode, process.cwd())
return {
resolve: {
alias: {
'@': resolve(process.cwd(), 'src'),
},
},
plugins: setupPlugins(viteEnv),
// ... existing code ...
}
})
方案3:完整的依赖升级
如果问题持续存在,建议同时升级相关依赖:
pnpm install vite@^5.4.0 vite-plugin-svg-icons@^2.0.1 -D
方案4:使用cnpm
cnpm install vite-plugin-svg-icons -D
参考:https://www.cnblogs.com/yehx/p/17081436.html.
https://blog.csdn.net/CHUAMING/article/details/136725039
更多推荐


所有评论(0)