我试图部署到Vercel,我以前在其他项目中也这样做过,但在这种情况下,构建失败了,它提到它找不到Footer组件,构建在本地机器上完美工作。
11:55:14.850 Cloning completed in 533ms
11:55:14.851 Analyzing source code...
11:55:17.183 Installing build runtime...
11:55:17.605 Build runtime installed: 422.099ms
11:55:18.023 Looking up build cache...
11:55:18.054 Build cache not found
11:55:18.481 Installing dependencies...
11:55:18.694 yarn install v1.22.4
11:55:18.757 [1/4] Resolving packages...
11:55:19.090 [2/4] Fetching packages...
11:55:27.361 info fsevents@2.1.3: The platform "linux" is incompatible with this module.
11:55:27.361 info "fsevents@2.1.3" is an optional dependency and failed compatibility check. Excluding it from installation.
11:55:27.365 info fsevents@1.2.13: The platform "linux" is incompatible with this module.
11:55:27.365 info "fsevents@1.2.13" is an optional dependency and failed compatibility check. Excluding it from installation.
11:55:27.369 [3/4] Linking dependencies...
11:55:27.371 warning "@apollo/react-hooks > @apollo/client@3.1.2" has unmet peer dependency "subscriptions-transport-ws@^0.9.0".
11:55:27.376 warning " > eslint-config-airbnb@18.2.0" has unmet peer dependency "eslint-plugin-react-hooks@^4 || ^3 || ^2.3.0 || ^1.7.0".
11:55:30.997 [4/4] Building fresh packages...
11:55:31.210 Done in 12.52s.
11:55:31.233 Running "yarn run build"
11:55:31.491 yarn run v1.22.4
11:55:31.513 $ next build
11:55:31.973 Browserslist: caniuse-lite is outdated. Please run next command `yarn upgrade`
11:55:32.044 Warning: No build cache found. Please configure build caching for faster rebuilds. Read more: https://err.sh/next.js/no-cache
11:55:32.044 Creating an optimized production build...
11:55:32.098 Attention: Next.js now collects completely anonymous telemetry regarding usage.
11:55:32.098 This information is used to shape Next.js' roadmap and prioritize features.
11:55:32.099 You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
11:55:32.099 https://nextjs.org/telemetry
11:55:44.385 Failed to compile.
11:55:44.385 ./components/App.js
11:55:44.385 Module not found: Can't resolve './Footer' in '/vercel/2e0a566d/components'
11:55:44.385 > Build error occurred
11:55:44.386 Error: > Build failed because of webpack errors
11:55:44.386 at build (/vercel/2e0a566d/node_modules/next/dist/build/index.js:13:900)
11:55:44.410 error Command failed with exit code 1.
11:55:44.410 info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
11:55:44.419 Error: Command "yarn run build" exited with 1
11:55:46.448 Done with "package.json"
我得到了支持部门的帮助,尽管我的本地组件是大写的,但远程分支的一些组件似乎是小写的。
确保正确导入具有确切文件夹/文件名的组件。E.g如果你有一个名为main和index.js的文件夹,它作为一个组件导出。您必须从确切的文件夹名称导出主组件(区分大小写(
// Content of index.js inside main folder
export default function Main() {}
// Use main component like this:
import Main from "./main";
export default function Home() {
return <Main />;
}
我也有类似的问题。它在本地构建得很好,但在vercel上构建时失败。
我做了一些测试,发现问题与路径+文件名的总长度有关。
我组织了apollo查询,使它们位于与集合tey查询同名的文件夹中。文件名是描述性的。结果是长路径和文件名。
示例
09:53:38.510 Failed to compile.
09:53:38.510 ModuleNotFoundError: Module not found: Error: Can't resolve 'urbalurba/apollo/queries/entitynetmember/EntityNetworkMembershipByEntityIDandNetworkID' in '/vercel/workpath0/urbalurba/lib'
09:53:38.510 > Build error occurred
09:53:38.511 Error: > Build failed because of webpack errors
09:53:38.511 at build (/vercel/workpath0/node_modules/next/dist/build/index.js:15:918)
09:53:38.511 at runMicrotasks (<anonymous>)
09:53:38.511 at processTicksAndRejections (internal/process/task_queues.js:97:5)
正如您所看到的,保存我的graphql突变的文件具有长文件名EntityNetworkMembershipByEntityID和NetworkID上例中的文件夹是entitynetmember。
我将文件夹名称从entitynetworkmembership缩短为entitynetmember。完成此操作后,构建过程会找到该文件夹中的所有其他文件。
所以我的结论是,总长度是导致构建失败的原因。
我遇到同样的问题,删除.next
文件夹并重建新版本。
我也遇到了Vercel构建错误(在localhost中运行没有问题(,这是一个大写问题。当我试图将Comment组件导入页面时,我得到了Vercel构建错误:
Failed to compile.
./pages/{mypage.js}
Module not found: Can't resolve '../components/comment' in '/vercel/path0/pages/'
> Build failed because of webpack errors
error Command failed with exit code 1.
我最终决定将Comment部分大写。如果我更改了页眉或页脚组件的大小写以匹配注释组件,则会出现相同的错误。这就是我最终需要做的,以消除构建错误。。。
import Comment from '../components/Comment'; //updated this import from comment to Comment
import Header from '../components/header'
import Footer from '../components/footer'
我的package.json
"dependencies": {
"@formspree/react": "^2.2.5",
"@fortawesome/fontawesome-pro": "^6.0.0",
"@fortawesome/fontawesome-svg-core": "^6.1.1",
"@fortawesome/pro-duotone-svg-icons": "^6.0.0",
"@fortawesome/pro-light-svg-icons": "^6.0.0",
"@fortawesome/pro-regular-svg-icons": "^6.0.0",
"@fortawesome/pro-solid-svg-icons": "^6.0.0",
"@fortawesome/pro-thin-svg-icons": "^6.0.0",
"@fortawesome/react-fontawesome": "^0.1.17",
"add": "^2.0.6",
"babel-plugin-macros": "^3.1.0",
"disqus-react": "^1.1.3",
"next": "^12.1.6",
"nextjs-breadcrumbs": "^1.1.9",
"react": "^18.1.0",
"react-dom": "^18.1.0",
"react-images": "^1.2.0-beta.7",
"react-photo-gallery": "^8.0.0",
"tailwindcss-hero-patterns": "^0.0.1",
"yarn": "^1.22.17"
},
"devDependencies": {
"autoprefixer": "^10.4.7",
"eslint": "<8.0.0",
"eslint-config-next": "^12.1.6",
"postcss": "^8.4.14",
"tailwindcss": "^3.0.23"
}