部署到 Vercel 时 NextJS 中出现 Typescript 错误,但在本地运行构建或 lint 时不会出现 Typescript 错误

jon*_*bbs 6 typescript eslint next.js vercel

首先,有一些关于类似标题的问题,但我不相信这是重复的,因为我认为这是最近对软件包或 vercel 的更改导致的。

我升级了今天正在构建的应用程序中的一些软件包..

这是更改的包

  "dependencies": {
    "next": "^13.2.3",
    "react": "18.2.0",
    "react-dom": "18.2.0"
  },
  "devDependencies": {
    "@types/node": "18.14.2",
    "@types/react": "18.0.28",
    "@types/react-dom": "18.0.11",
    "eslint": "8.35.0",
    "eslint-config-next": "^13.2.3",
    "typescript": "4.9.5"
  }
Run Code Online (Sandbox Code Playgroud)

从那时起,当我尝试将相同的代码部署到昨天部署良好的 Vercel 时,我遇到了很多新的 linting 错误。这是一个例子

Type error: 'supplierId' is possibly 'undefined'.
  56 | 
  57 |   // Get Supplier Products
> 58 |   const supplierProductsQuery = trpc.supplierProducts.get.useQuery({supplier_id: supplierId}, { enabled: supplierId > 0, ...refetchNever });
Run Code Online (Sandbox Code Playgroud)

这段代码对我来说看起来不错。我知道该变量可能是未定义的,这就是为什么我将它用作标志来在未定义时启用某些功能。无论如何,这是一个旁白。重点是,我在本地运行时没有遇到任何类似这样的错误,运行下一个开发、下一个 lint 和下一个构建都没有错误地运行,但在 Vercel 上,它似乎突然变得更加严格,或者运行完全不同linting 规则。

有人能解释为什么会这样吗?