You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js 15 + Turbopack构建失败:SVG导入本地正常打包报错

解决Next.js 15 + Turbopack下@svgr/webpack构建SVG失败问题

问题原因

本地开发时Turbopack能正确将SVG转换为React组件,但生产构建(next build)中配置未生效,导致SVG导入后是对象而非组件,触发「元素类型无效」错误。

解决方案

1. 调整Turbopack配置,强制@svgr导出默认组件

修改next.config.ts,给@svgr/webpack添加exportType选项,确保生产构建时正确导出React组件:

import type { NextConfig } from "next";

const nextConfig: NextConfig = {
  turbopack: {
    rules: {
      '*.svg': {
        loaders: [
          {
            loader: '@svgr/webpack',
            options: {
              exportType: 'default', // 明确指定默认导出为组件
            },
          },
        ],
        as: '*.js',
      },
    },
  },
};

export default nextConfig;

2. 避免SVG放在public目录

public目录下的文件默认被Next.js当作静态资源处理,可能和@svgr的转换逻辑冲突。建议将SVG图标移到src/assets/icons这类非public目录下,修改导入路径:

// 原路径:import File from "../../public/globe.svg";
import File from "../assets/icons/globe.svg"; // 新路径

export default function Home() {
  return (
    <div>
      <File/>
    </div>
  );
}

3. 确保@svgr/webpack版本兼容

执行以下命令更新到最新兼容版本:

npm install @svgr/webpack@latest --save-dev

验证修复

执行next build和next start,确认页面能正常渲染SVG图标,无预渲染报错。

内容的提问来源于stack exchange,提问作者Farhan Ajmal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 15:52:32