Next.js构建在Vercel和本地失败

iyr7buue  于 2023-03-12  发布在  其他
关注(0)|答案(1)|浏览(154)

我正在构建我的第一个Next.js网站,但由于某种原因,我遇到了一个构建错误。这种情况在本地和Vercel上都会发生,但我能够在某个时候得到一个工作的本地构建(现在不再工作了)。
这是我的包裹

{
      "private": true,
      "scripts": {
        "dev": "next dev",
        "build": "next build",
        "start": "next start"
      },
      "dependencies": {
        "@chakra-ui/icons": "^2.0.17",
        "@chakra-ui/react": "^2.5.1",
        "@emotion/react": "^11.10.6",
        "@emotion/styled": "^11.10.6",
        "@fontsource/dm-sans": "^4.5.9",
        "@tanstack/react-table": "^8.7.9",
        "@types/react-table": "^7.7.14",
        "framer-motion": "^9.0.4",
        "mongodb": "^4.8.1",
        "next": "latest",
        "react": "^18.2.0",
        "react-dom": "^18.2.0",
        "react-icons": "^4.8.0",
        "react-query": "^3.39.3"
      },
      "devDependencies": {
        "@types/node": "18.7.5",
        "@types/react": "16.9.17",
        "typescript": "4.6.3"
      }
    }

这些是我在运行npm run build时得到的错误(我在本地和vercel上得到第一个,第二个只在vercel上得到)
x一个一个一个一个x一个一个二个x
这是我的tsconfig.json

{
    "compilerOptions": {
        "target": "es5",
        "lib": ["dom", "dom.iterable", "esnext"],
        "allowJs": true,
        "skipLibCheck": true,
        "strict": true,
        "forceConsistentCasingInFileNames": true,
        "noEmit": true,
        "incremental": true,
        "esModuleInterop": true,
        "module": "esnext",
        "moduleResolution": "node",
        "resolveJsonModule": true,
        "isolatedModules": true,
        "jsx": "preserve"
    },
    "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
    "exclude": ["node_modules"]
}

我觉得奇怪的是这会产生一个错误,因为我自己并没有在任何地方使用framer-motion。它是与ChakraUI捆绑在一起的。在构建之后,我也会收到奇怪的错误,我的VSCode说它找不到某些导入。

我尝试过的:
1.删除node_modules和package-lock. json,再次运行npm i
1.卸载框架运动
1.将Vercel中的节点版本从18设置为16和14(无效)
老实说,我完全不知道该做什么,从哪里开始。希望阅读这篇文章的人有一个想法。
谢谢

bprjcwpo

bprjcwpo1#

解决了!原来我需要用npm install -D typescript@latest更新Typescript。在Typescript Github上,建议全局安装,但最好是作为开发依赖项安装。TS工作人员已经为这个问题打开了一个拉取请求

相关问题