找不到模块“virtual:svg-icons-register”或其相应的类型声明的解决办法

创建类型声明文件

在项目的 src 目录下创建一个类型声明文件,例如 vite-env.d.ts 或 global.d.ts:

typescript 复制代码
// src/vite-env.d.ts 或 src/global.d.ts

declare module 'virtual:svg-icons-register' {
  const component: any;
  export default component;
}

或者更详细的类型声明:

typescript 复制代码
// src/vite-env.d.ts

declare module 'virtual:svg-icons-register' {
  import { Plugin } from 'vite';
  
  // 根据实际使用的 svg 图标库进行调整
  const svgIconsRegister: Plugin;
  export default svgIconsRegister;
}

在 tsconfig.json 中包含声明文件

确保你的 tsconfig.json 包含了类型声明文件,vite创建的项目会有tsconfig.app.json和tsconfig.noed.json同理在include声明文件路径,如src文件夹下面的vite-env.d.ts文件声明为"src/vite-env.d.ts"

typescript 复制代码
{
  "compilerOptions": {
    // ... 其他配置
  },
  "include": [
    "src/**/*",
    "src/**/*.d.ts",
    "src/vite-env.d.ts" // 确保包含你的声明文件
  ]
}

检查依赖和配置

确保正确安装了插件vite-plugin-svg-icons,不确定包是否丢失建议重新安装一遍

bash 复制代码
yarn add vite-plugin-svg-icons -D
# or
npm i vite-plugin-svg-icons -D
# or
pnpm install vite-plugin-svg-icons -D

并在 vite.config.ts 中正确配置:

typescript 复制代码
// vite.config.ts
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
import { defineConfig } from 'vite';

export default defineConfig({
  plugins: [
    createSvgIconsPlugin({
		iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/svg')],
        symbolId: 'icon-[dir]-[name]'
    }),
    // ... 其他插件
  ],
});
相关推荐
Dragon Wu17 小时前
Electron Forge集成React Typescript完整步骤
前端·javascript·react.js·typescript·electron·reactjs
We་ct1 天前
LeetCode 56. 合并区间:区间重叠问题的核心解法与代码解析
前端·算法·leetcode·typescript
程序猿阿伟2 天前
《TypeScript中Protobuf到运行时类型安全的转换指南》
javascript·安全·typescript
We་ct2 天前
LeetCode 228. 汇总区间:解题思路+代码详解
前端·算法·leetcode·typescript
阿蒙Amon2 天前
TypeScript学习-第10章:模块与命名空间
学习·ubuntu·typescript
VT.馒头2 天前
【力扣】2695. 包装数组
前端·javascript·算法·leetcode·职场和发展·typescript
AAA阿giao3 天前
从零拆解一个 React + TypeScript 的 TodoList:模块化、数据流与工程实践
前端·react.js·ui·typescript·前端框架
hedley(●'◡'●)3 天前
基于cesium和vue的大疆司空模仿程序
前端·javascript·vue.js·python·typescript·无人机
百锦再3 天前
Vue高阶知识:利用 defineModel 特性开发搜索组件组合
前端·vue.js·学习·flutter·typescript·前端框架
小杨同学呀呀呀呀3 天前
Ant Design Vue <a-timeline>时间轴组件失效解决方案
前端·javascript·vue.js·typescript·anti-design-vue