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

Graphql Codegen client-preset-swc-plugin在Vite生产构建中失效求助

解决GraphQL Codegen client-preset-swc-plugin配合Vite生产构建报错问题

修复方案

  • 对齐SWC插件版本:你当前使用的@graphql-codegen/client-preset-swc-plugin为0.2.0,和@vitejs/plugin-react-swc3.2.0可能存在SWC内核版本不兼容问题。尝试升级client-preset-swc-plugin到最新稳定版(比如^0.3.0及以上),或者降级到与react-swc插件匹配的版本后重新构建。
  • 清理依赖缓存:删除项目的node_modules文件夹、package-lock.json(或yarn.lock),重新执行npm install(或yarn install),排除依赖缓存导致的版本冲突。
  • 临时排查插件冲突:报错由vite-plugin-pwa触发,先临时注释掉Vite配置中的PWA插件,重新构建验证是否能正常运行。如果恢复正常,再排查PWA插件与SWC插件的兼容问题,比如升级vite-plugin-pwa到最新版。
  • 检查SWC插件配置:确保在Vite配置中正确引入client-preset-swc-plugin,示例配置如下:
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react-swc';
import { clientPresetSwcPlugin } from '@graphql-codegen/client-preset-swc-plugin';

export default defineConfig({
  plugins: [
    react({
      plugins: [clientPresetSwcPlugin()]
    })
  ]
});
  • 检查GraphQL代码语法:排查项目中所有GraphQL查询、片段的语法是否符合规范,错误的GraphQL语法可能导致SWC插件运行时崩溃。

替代方案

  • 切换到Babel插件版本:放弃SWC插件,改用@graphql-codegen/client-preset的Babel插件。先安装@vitejs/plugin-react(非SWC版本),然后在Babel配置中添加@graphql-codegen/client-preset/babel-plugin,同样能实现打包体积优化,且兼容性更稳定。
  • 预先生成GraphQL代码:不依赖构建时的插件转换,直接通过graphql-codegen CLI预先生成所有客户端需要的GraphQL类型和操作代码。在项目中直接使用生成的文件,构建时无需插件处理,彻底避免插件运行时错误,同时也能达到减小体积的目的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 00:21:28