reactjs vite-plugin-svgr在vite、react和typescript中不起作用

rseugnpd  于 5个月前  发布在  React
关注(0)|答案(2)|浏览(72)

我目前正在使用vite,react和typescript创建一个web应用程序。然而,即使我使用vite-plugin-svgr在react中使用svg,它也不能正常工作。
我检查了几篇文章,但没有一篇有效。
我该怎么解决这个问题?
错误:请求的模块“/src/assets/search.svg?import”未提供名为“ReactComponent”的导出

//vite.config.ts
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import svgr from "vite-plugin-svgr";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    react(),
    svgr()
  ]
});

x

//tsconfig.json
{
  "compilerOptions": {
    ...
    "types": ["vite-plugin-svgr/client"]
  },
  "include": ["src", "global.d.ts", "svg.d.ts"],
  "references": [{ "path": "./tsconfig.node.json" }]
}
//package.json
{
  ...
  "dependencies": {
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
  },
  "devDependencies": {
    "@types/node": "^20.8.4",
    "@types/react": "^18.2.15",
    "@vitejs/plugin-react": "^4.0.3",
    "typescript": "^5.0.2",
    "vite": "^4.4.11",
    "vite-plugin-svgr": "^4.1.0"
  }
}
//SearchBar.tsx
import styled from "styled-components";
import { ReactComponent as MainTitle } from "../assets/search.svg";
...

的数据

xmd2e60i

xmd2e60i1#

import MainTitle from "../assets/search.svg?react";

字符串
而不是

import { ReactComponent as MainTitle } from "../assets/search.svg";


同时在App.tsx上添加引用类型

/// <reference types="vite-plugin-svgr/client" />


或在tsconfig.json

...
"types": [
"vite/client",
"vite-plugin-svgr/client"
]
...

ve7v8dk2

ve7v8dk22#

我最近遇到了一个类似的问题,它只发生在最新版本的依赖项中。只需将版本降级到3.2.0,问题就应该得到解决。
"vite-plugin-svgr":"@^3.2.0"

相关问题