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

Next.js集成GraphQL构建报类型错误如何配置.eslintrc解决?

问题说明

首先纠正判断:该构建拦截不是GraphQL相关的ESLint校验触发的,是Next.js构建流程内置的TypeScript类型检查抛出的错误。
报错核心原因:slugIn字段要求入参类型为string[](字符串数组),但你传入的productSlug变量类型为string | string[](可能为单个字符串,也可能为字符串数组),类型不匹配导致构建失败。

解决方法

方案1:对齐类型(生产环境推荐)

不要直接关闭校验,优先把入参处理成符合要求的类型,从根源解决问题。
这类string | string[]的类型通常来自Next.js路由query参数(动态路由参数默认就会返回这个联合类型),提前做归一化处理即可:

// 统一把入参处理成数组格式,保证传入slugIn的永远是string[]类型
const validSlugs = Array.isArray(productSlug) ? productSlug : [productSlug]
const items = products({
  where: {
    slugIn: validSlugs,
  },
}).nodes

如果你100%确定productSlug本身就是数组类型,也可以用类型断言快速修复:

const items = products({
  where: {
    slugIn: productSlug as string[],
  },
}).nodes

方案2:临时绕过校验(仅本地调试用,不推荐生产环境配置)

仅修改.eslintrc无法绕过这个错误,因为该错误来自TypeScript编译器而非ESLint,需要同时调整Next.js构建配置:

  1. 打开项目根目录的next.config.js,添加如下配置跳过构建时的类型、ESLint检查:
/** @type {import('next').NextConfig} */
const nextConfig = {
  // 跳过构建时TypeScript类型检查
  typescript: {
    ignoreBuildErrors: true,
  },
  // 跳过构建时ESLint检查
  eslint: {
    ignoreDuringBuilds: true,
  }
}

module.exports = nextConfig
  1. 如果你只是要调整ESLint规则,现有.eslintrc无需额外修改即可兼容,你当前的配置没有开启会拦截这类场景的规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 08:42:14