I’m trying to deploy my NextJS app to Cloudflare Pages but I’m getting errors when building the app.
I followed the instructions given by Cloudflare on how to deploy a NextJS app to Pages (installed the @cloudflare/next-on-pages, added an edge runtime, and used the given build command).
Here’s the log:
2023-11-04T15:12:29.171161Z ▲ ▲ Next.js 14.0.1
2023-11-04T15:12:29.172068Z ▲ Creating an optimized production build ...
2023-11-04T15:12:29.191319Z ▲ ⚠ Custom webpack configuration is detected. When using a custom webpack configuration, the Webpack build worker is disabled by default. To force enable it, set the "experimental.webpackBuildWorker" option to "true". Read more: https://nextjs.org/docs/messages/webpack-build-worker-opt-out
2023-11-04T15:12:29.230929Z ▲ ⚠ You are using an experimental edge runtime, the API might change.
2023-11-04T15:12:29.657053Z ▲ > [PWA] Compile server
2023-11-04T15:12:29.657799Z ▲ > [PWA] Compile server
2023-11-04T15:12:29.658519Z ▲ > [PWA] Compile client (static)
2023-11-04T15:12:29.658933Z ▲ > [PWA] Auto register service worker with: /opt/buildhome/repo/node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected]/node_modules/next-pwa/register.js
2023-11-04T15:12:29.659158Z ▲ > [PWA] Service worker: /opt/buildhome/repo/public/sw.js
2023-11-04T15:12:29.659361Z ▲ > [PWA] url: /sw.js
2023-11-04T15:12:29.659549Z ▲ > [PWA] scope: /
2023-11-04T15:12:29.678539Z ▲ > [PWA] Fallback to precache routes when fetch failed from cache or network:
2023-11-04T15:12:29.679026Z ▲ > [PWA] document (page): /_offline
2023-11-04T15:13:12.745727Z ▲ Failed to compile.
2023-11-04T15:13:12.746602Z ▲ ./node_modules/.pnpm/@[email protected]/node_modules/@mapbox/node-pre-gyp/lib/node-pre-gyp.js:20:0
2023-11-04T15:13:12.747068Z ▲ Module not found: Can't resolve 'fs'
2023-11-04T15:13:12.747574Z ▲
2023-11-04T15:13:12.747779Z ▲ https://nextjs.org/docs/messages/module-not-found
2023-11-04T15:13:12.748341Z ▲
2023-11-04T15:13:12.74906Z ▲ Import trace for requested module:
2023-11-04T15:13:12.749279Z ▲ ./node_modules/.pnpm/[email protected]/node_modules/bcrypt/bcrypt.js
2023-11-04T15:13:12.74951Z ▲ ./src/pages/api/auth/[...nextauth].ts
2023-11-04T15:13:12.749772Z ▲ ./src/pages/profile.tsx
2023-11-04T15:13:12.750403Z ▲ ./node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected]/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js?{"absolute500Path":"","absoluteAppPath":"private-next-pages/_app.tsx","absoluteDocumentPath":"private-next-pages/_document.tsx","absoluteErrorPath":"next/dist/pages/_error","absolutePagePath":"private-next-pages/profile.tsx","buildId":"rx9hHNN6L2omwvD5EKiyu","dev":false,"isServerComponent":false,"page":"/profile","stringifiedConfig":"eyJlbnYiOnt9LCJlc2xpbnQiOnsiaWdub3JlRHVyaW5nQnVpbGRzIjp0cnVlfSwidHlwZXNjcmlwdCI6eyJpZ25vcmVCdWlsZEVycm9ycyI6ZmFsc2UsInRzY29uZmlnUGF0aCI6InRzY29uZmlnLmpzb24ifSwiZGlzdERpciI6Ii5uZXh0IiwiY2xlYW5EaXN0RGlyIjp0cnVlLCJhc3NldFByZWZpeCI6IiIsImNvbmZpZ09yaWdpbiI6Im5leHQuY29uZmlnLmpzIiwidXNlRmlsZVN5c3RlbVB1YmxpY1JvdXRlcyI6dHJ1ZSwiZ2VuZXJhdGVFdGFncyI6dHJ1ZSwicGFnZUV4dGVuc2lvbnMiOlsidHN4IiwidHMiLCJqc3giLCJqcyJdLCJwb3dlcmVkQnlIZWFkZXIiOnRydWUsImNvbXByZXNzIjp0cnVlLCJhbmFseXRpY3NJZCI6IiIsImltYWdlcyI6eyJkZXZpY2VTaXplcyI6WzY0MCw3NTAsODI4LDEwODAsMTIwMCwxOTIwLDIwNDgsMzg0MF0sImltYWdlU2l6ZXMiOlsxNiwzMiw0OCw2NCw5NiwxMjgsMjU2LDM4NF0sInBhdGgiOiIvX25leHQvaW1hZ2UiLCJsb2FkZXIiOiJkZWZhdWx0IiwibG9hZGVyRmlsZSI6IiIsImRvbWFpbnMiOltdLCJkaXNhYmxlU3RhdGljSW1hZ2VzIjpmYWxzZSwibWluaW11bUNhY2hlVFRMIjo2MCwiZm9ybWF0cyI6WyJpbWFnZS93ZWJwIl0sImRhbmdlcm91c2x5QWxsb3dTVkciOmZhbHNlLCJjb250ZW50U2VjdXJpdHlQb2xpY3kiOiJzY3JpcHQtc3JjICdub25lJzsgZnJhbWUtc3JjICdub25lJzsgc2FuZGJveDsiLCJjb250ZW50RGlzcG9zaXRpb25UeXBlIjoiaW5saW5lIiwicmVtb3RlUGF0dGVybnMiOlt7InByb3RvY29sIjoiaHR0cHMiLCJob3N0bmFtZSI6InJhdy5naXRodWJ1c2VyY29udGVudC5jb20ifSx7InByb3RvY29sIjoiaHR0cHMiLCJob3N0bmFtZSI6ImltYWdlcy5wb2tlbW9udGNnLmlvIn1dLCJ1bm9wdGltaXplZCI6ZmFsc2V9LCJkZXZJbmRpY2F0b3JzIjp7ImJ1aWxkQWN0aXZpdHkiOnRydWUsImJ1aWxkQWN0aXZpdHlQb3NpdGlvbiI6ImJvdHRvbS1yaWdodCJ9LCJvbkRlbWFuZEVudHJpZXMiOnsibWF4SW5hY3RpdmVBZ2UiOjYwMDAwLCJwYWdlc0J1ZmZlckxlbmd0aCI6NX0sImFtcCI6eyJjYW5vbmljYWxCYXNlIjoiIn0sImJhc2VQYXRoIjoiIiwic2Fzc09wdGlvbnMiOnsiaW5jbHVkZVBhdGhzIjpbIi9vcHQvYnVpbGRob21lL3JlcG8vc3R5bGVzIl19LCJ0cmFpbGluZ1NsYXNoIjpmYWxzZSwiaTE4biI6bnVsbCwicHJvZHVjdGlvbkJyb3dzZXJTb3VyY2VNYXBzIjpmYWxzZSwib3B0aW1pemVGb250cyI6dHJ1ZSwiZXhjbHVkZURlZmF1bHRNb21lbnRMb2NhbGVzIjp0cnVlLCJzZXJ2ZXJSdW50aW1lQ29uZmlnIjp7fSwicHVibGljUnVudGltZUNvbmZpZyI6e30sInJlYWN0UHJvZHVjdGlvblByb2ZpbGluZyI6ZmFsc2UsInJlYWN0U3RyaWN0TW9kZSI6dHJ1ZSwiaHR0cEFnZW50T3B0aW9ucyI6eyJrZWVwQWxpdmUiOnRydWV9LCJvdXRwdXRGaWxlVHJhY2luZyI6dHJ1ZSwic3RhdGljUGFnZUdlbmVyYXRpb25UaW1lb3V0Ijo2MCwic3djTWluaWZ5Ijp0cnVlLCJtb2R1bGFyaXplSW1wb3J0cyI6eyJAbXVpL2ljb25zLW1hdGVyaWFsIjp7InRyYW5zZm9ybSI6IkBtdWkvaWNvbnMtbWF0ZXJpYWwve3ttZW1iZXJ9fSJ9LCJkYXRlLWZucyI6eyJ0cmFuc2Zvcm0iOiJkYXRlLWZucy97e21lbWJlcn19In0sImxvZGFzaCI6eyJ0cmFuc2Zvcm0iOiJsb2Rhc2gve3ttZW1iZXJ9fSJ9LCJsb2Rhc2gtZXMiOnsidHJhbnNmb3JtIjoibG9kYXNoLWVzL3t7bWVtYmVyfX0ifSwicmFtZGEiOnsidHJhbnNmb3JtIjoicmFtZGEvZXMve3ttZW1iZXJ9fSJ9LCJyZWFjdC1ib290c3RyYXAiOnsidHJhbnNmb3JtIjp7InVzZUFjY29yZGlvbkJ1dHRvbiI6Im1vZHVsYXJpemUtaW1wb3J0LWxvYWRlcj9uYW1lPXVzZUFjY29yZGlvbkJ1dHRvbiZmcm9tPW5hbWVkJmFzPWRlZmF1bHQhcmVhY3QtYm9vdHN0cmFwL0FjY29yZGlvbkJ1dHRvbiIsIioiOiJyZWFjdC1ib290c3RyYXAve3ttZW1iZXJ9fSJ9fSwiYW50ZCI6eyJ0cmFuc2Zvcm0iOiJhbnRkL2xpYi97e2tlYmFiQ2FzZSBtZW1iZXJ9fSJ9LCJhaG9va3MiOnsidHJhbnNmb3JtIjp7ImNyZWF0ZVVwZGF0ZUVmZmVjdCI6Im1vZHVsYXJpemUtaW1wb3J0LWxvYWRlcj9uYW1lPWNyZWF0ZVVwZGF0ZUVmZmVjdCZmcm9tPW5hbWVkJmFzPWRlZmF1bHQhYWhvb2tzL2VzL2NyZWF0ZVVwZGF0ZUVmZmVjdCIsIioiOiJhaG9va3MvZXMve3ttZW1iZXJ9fSJ9fSwiQGFudC1kZXNpZ24vaWNvbnMiOnsidHJhbnNmb3JtIjp7Ikljb25Qcm92aWRlciI6Im1vZHVsYXJpemUtaW1wb3J0LWxvYWRlcj9uYW1lPUljb25Qcm92aWRlciZmcm9tPW5hbWVkJmFzPWRlZmF1bHQhQGFudC1kZXNpZ24vaWNvbnMiLCJjcmVhdGVGcm9tSWNvbmZvbnRDTiI6IkBhbnQtZGVzaWduL2ljb25zL2VzL2NvbXBvbmVudHMvSWNvbkZvbnQiLCJnZXRUd29Ub25lQ29sb3IiOiJtb2R1bGFyaXplLWltcG9ydC1sb2FkZXI/bmFtZT1nZXRUd29Ub25lQ29sb3ImZnJvbT1uYW1lZCZhcz1kZWZhdWx0IUBhbnQtZGVzaWduL2ljb25zL2VzL2NvbXBvbmVudHMvdHdvVG9uZVByaW1hcnlDb2xvciIsInNldFR3b1RvbmVDb2xvciI6Im1vZHVsYXJpemUtaW1wb3J0LWxvYWRlcj9uYW1lPXNldFR3b1RvbmVDb2xvciZmcm9tPW5hbWVkJmFzPWRlZmF1bHQhQGFudC1kZXNpZ24vaWNvbnMvZXMvY29tcG9uZW50cy90d29Ub25lUHJpbWFyeUNvbG9yIiwiKiI6IkBhbnQtZGVzaWduL2ljb25zL2xpYi9pY29ucy97e21lbWJlcn19In19LCJuZXh0L3NlcnZlciI6eyJ0cmFuc2Zvcm0iOiJuZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL3t7IGtlYmFiQ2FzZSBtZW1iZXIgfX0ifX0sImV4cGVyaW1lbnRhbCI6eyJzZXJ2ZXJNaW5pZmljYXRpb24iOnRydWUsInNlcnZlclNvdXJjZU1hcHMiOmZhbHNlLCJjYXNlU2Vuc2l0aXZlUm91dGVzIjpmYWxzZSwidXNlRGVwbG95bWVudElkIjpmYWxzZSwidXNlRGVwbG95bWVudElkU2VydmVyQWN0aW9ucyI6ZmFsc2UsImNsaWVudFJvdXRlckZpbHRlciI6dHJ1ZSwiY2xpZW50Um91dGVyRmlsdGVyUmVkaXJlY3RzIjpmYWxzZSwiZmV0Y2hDYWNoZUtleVByZWZpeCI6IiIsIm1pZGRsZXdhcmVQcmVmZXRjaCI6ImZsZXhpYmxlIiwib3B0aW1pc3RpY0NsaWVudENhY2hlIjp0cnVlLCJtYW51YWxDbGllbnRCYXNlUGF0aCI6ZmFsc2UsImNwdXMiOjMsIm1lbW9yeUJhc2VkV29ya2Vyc0NvdW50IjpmYWxzZSwiaXNyRmx1c2hUb0Rpc2siOnRydWUsIndvcmtlclRocmVhZHMiOmZhbHNlLCJvcHRpbWl6ZUNzcyI6ZmFsc2UsIm5leHRTY3JpcHRXb3JrZXJzIjpmYWxzZSwic2Nyb2xsUmVzdG9yYXRpb24iOmZhbHNlLCJleHRlcm5hbERpciI6ZmFsc2UsImRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nIjpmYWxzZSwiZ3ppcFNpemUiOnRydWUsImNyYUNvbXBhdCI6ZmFsc2UsImVzbUV4dGVybmFscyI6dHJ1ZSwiaXNyTWVtb3J5Q2FjaGVTaXplIjo1MjQyODgwMCwiZnVsbHlTcGVjaWZpZWQiOmZhbHNlLCJvdXRwdXRGaWxlVHJhY2luZ1Jvb3QiOiIvb3B0L2J1aWxkaG9tZS9yZXBvIiwic3djVHJhY2VQcm9maWxpbmciOmZhbHNlLCJmb3JjZVN3Y1RyYW5zZm9ybXMiOmZhbHNlLCJsYXJnZVBhZ2VEYXRhQnl0ZXMiOjEyODAwMCwiYWRqdXN0Rm9udEZhbGxiYWNrcyI6ZmFsc2UsImFkanVzdEZvbnRGYWxsYmFja3NXaXRoU2l6ZUFkanVzdCI6ZmFsc2UsInR5cGVkUm91dGVzIjpmYWxzZSwiaW5zdHJ1bWVudGF0aW9uSG9vayI6ZmFsc2UsImJ1bmRsZVBhZ2VzRXh0ZXJuYWxzIjpmYWxzZSwib3B0aW1pemVQYWNrYWdlSW1wb3J0cyI6WyJsdWNpZGUtcmVhY3QiLCJAaGVhZGxlc3N1aS9yZWFjdCIsIkBoZWFkbGVzc3VpLWZsb2F0L3JlYWN0IiwiQGhlcm9pY29ucy9yZWFjdC8yMC9zb2xpZCIsIkBoZXJvaWNvbnMvcmVhY3QvMjQvc29saWQiLCJAaGVyb2ljb25zL3JlYWN0LzI0L291dGxpbmUiLCJAdmlzeC92aXN4IiwiQHRyZW1vci9yZWFjdCIsInJ4anMiLCJAbXVpL21hdGVyaWFsIiwiQG11aS9pY29ucy1tYXRlcmlhbCIsInJlY2hhcnRzIiwicmVhY3QtdXNlIiwiQG1hdGVyaWFsLXVpL2NvcmUiLCJAbWF0ZXJpYWwtdWkvaWNvbnMiLCJAdGFibGVyL2ljb25zLXJlYWN0IiwibXVpLWNvcmUiLCJyZWFjdC1pY29ucy9haSIsInJlYWN0LWljb25zL2JpIiwicmVhY3QtaWNvbnMvYnMiLCJyZWFjdC1pY29ucy9jZyIsInJlYWN0LWljb25zL2NpIiwicmVhY3QtaWNvbnMvZGkiLCJyZWFjdC1pY29ucy9mYSIsInJlYWN0LWljb25zL2ZhNiIsInJlYWN0LWljb25zL2ZjIiwicmVhY3QtaWNvbnMvZmkiLCJyZWFjdC1pY29ucy9naSIsInJlYWN0LWljb25zL2dvIiwicmVhY3QtaWNvbnMvZ3IiLCJyZWFjdC1pY29ucy9oaSIsInJlYWN0LWljb25zL2hpMiIsInJlYWN0LWljb25zL2ltIiwicmVhY3QtaWNvbnMvaW8iLCJyZWFjdC1pY29ucy9pbzUiLCJyZWFjdC1pY29ucy9saWEiLCJyZWFjdC1pY29ucy9saWIiLCJyZWFjdC1pY29ucy9sdSIsInJlYWN0LWljb25zL21kIiwicmVhY3QtaWNvbnMvcGkiLCJyZWFjdC1pY29ucy9yaSIsInJlYWN0LWljb25zL3J4IiwicmVhY3QtaWNvbnMvc2kiLCJyZWFjdC1pY29ucy9zbCIsInJlYWN0LWljb25zL3RiIiwicmVhY3QtaWNvbnMvdGZpIiwicmVhY3QtaWNvbnMvdGkiLCJyZWFjdC1pY29ucy92c2MiLCJyZWFjdC1pY29ucy93aSJdfSwiY29uZmlnRmlsZSI6Ii9vcHQvYnVpbGRob21lL3JlcG8vbmV4dC5jb25maWcuanMiLCJjb25maWdGaWxlTmFtZSI6Im5leHQuY29uZmlnLmpzIn0=","pagesType":"pages","appDirLoader":"","sriEnabled":false,"middlewareConfig":"e30="}!
2023-11-04T15:13:12.750814Z ▲
2023-11-04T15:13:12.75097Z ▲ ./node_modules/.pnpm/@[email protected]/node_modules/@mapbox/node-pre-gyp/lib/node-pre-gyp.js:21:0
2023-11-04T15:13:12.751122Z ▲ Module not found: Can't resolve 'path'
2023-11-04T15:13:12.751289Z ▲
2023-11-04T15:13:12.75146Z ▲ https://nextjs.org/docs/messages/module-not-found
2023-11-04T15:13:12.751596Z ▲
2023-11-04T15:13:12.751721Z ▲ Import trace for requested module:
2023-11-04T15:13:12.751843Z ▲ ./node_modules/.pnpm/[email protected]/node_modules/bcrypt/bcrypt.js
2023-11-04T15:13:12.751964Z ▲ ./src/pages/api/auth/[...nextauth].ts
2023-11-04T15:13:12.752172Z ▲ ./src/pages/profile.tsx
2023-11-04T15:13:12.752369Z ▲ ./node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected]/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js
2023-11-04T15:13:12.752598Z ▲
2023-11-04T15:13:12.752752Z ▲ ./node_modules/.pnpm/@[email protected]/node_modules/@mapbox/node-pre-gyp/lib/pre-binding.js:6:0
2023-11-04T15:13:12.752892Z ▲ Module not found: Can't resolve 'fs'
2023-11-04T15:13:12.753026Z ▲
2023-11-04T15:13:12.753165Z ▲ https://nextjs.org/docs/messages/module-not-found
2023-11-04T15:13:12.753319Z ▲
2023-11-04T15:13:12.753456Z ▲ Import trace for requested module:
2023-11-04T15:13:12.753584Z ▲ ./node_modules/.pnpm/@[email protected]/node_modules/@mapbox/node-pre-gyp/lib/node-pre-gyp.js
2023-11-04T15:13:12.753714Z ▲ ./node_modules/.pnpm/[email protected]/node_modules/bcrypt/bcrypt.js
2023-11-04T15:13:12.753848Z ▲ ./src/pages/api/auth/[...nextauth].ts
2023-11-04T15:13:12.753971Z ▲ ./src/pages/profile.tsx
2023-11-04T15:13:12.754148Z ▲ ./node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected]/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js
2023-11-04T15:13:12.754361Z ▲
2023-11-04T15:13:12.754912Z ▲ ./node_modules/.pnpm/@[email protected]/node_modules/@mapbox/node-pre-gyp/lib/pre-binding.js:6:0
2023-11-04T15:13:12.755084Z ▲ Module not found: Can't resolve 'path'
2023-11-04T15:13:12.755235Z ▲
2023-11-04T15:13:12.755463Z ▲ https://nextjs.org/docs/messages/module-not-found
2023-11-04T15:13:12.755598Z ▲
2023-11-04T15:13:12.755726Z ▲ Import trace for requested module:
2023-11-04T15:13:12.756386Z ▲ ./node_modules/.pnpm/@[email protected]/node_modules/@mapbox/node-pre-gyp/lib/node-pre-gyp.js
2023-11-04T15:13:12.756559Z ▲ ./node_modules/.pnpm/[email protected]/node_modules/bcrypt/bcrypt.js
2023-11-04T15:13:12.756739Z ▲ ./src/pages/api/auth/[...nextauth].ts
2023-11-04T15:13:12.756877Z ▲ ./src/pages/profile.tsx
2023-11-04T15:13:12.757105Z ▲ ./node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected]/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js
2023-11-04T15:13:12.757336Z ▲
2023-11-04T15:13:12.757472Z ▲ ./node_modules/.pnpm/@[email protected]/node_modules/@mapbox/node-pre-gyp/lib/util/napi.js:3:0
2023-11-04T15:13:12.757622Z ▲ Module not found: Can't resolve 'fs'
2023-11-04T15:13:12.758159Z ▲
2023-11-04T15:13:12.758338Z ▲ https://nextjs.org/docs/messages/module-not-found
2023-11-04T15:13:12.758522Z ▲
2023-11-04T15:13:12.758671Z ▲ Import trace for requested module:
2023-11-04T15:13:12.758807Z ▲ ./node_modules/.pnpm/@[email protected]/node_modules/@mapbox/node-pre-gyp/lib/node-pre-gyp.js
2023-11-04T15:13:12.758965Z ▲ ./node_modules/.pnpm/[email protected]/node_modules/bcrypt/bcrypt.js
2023-11-04T15:13:12.759607Z ▲ ./src/pages/api/auth/[...nextauth].ts
2023-11-04T15:13:12.759779Z ▲ ./src/pages/profile.tsx
2023-11-04T15:13:12.759975Z ▲ ./node_modules/.pnpm/[email protected]_@[email protected][email protected][email protected][email protected]/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js
2023-11-04T15:13:12.760197Z ▲
2023-11-04T15:13:12.760344Z ▲ > webpack config.resolve.alias was incorrectly overridden. https://nextjs.org/docs/messages/invalid-resolve-alias
2023-11-04T15:13:12.86641Z ▲ ELIFECYCLE Command failed with exit code 1.
2023-11-04T15:13:12.90945Z ▲ Error: Command "pnpm run build" exited with 1
2023-11-04T15:13:12.933458Z
2023-11-04T15:13:12.933984Z ⚡️ The Vercel build (`npx vercel build`) command failed. For more details see the Vercel logs above.
2023-11-04T15:13:12.934379Z ⚡️ If you need help solving the issue, refer to the Vercel or Next.js documentation or their repositories.
2023-11-04T15:13:12.934679Z
2023-11-04T15:13:12.95764Z Failed: Error while executing user command. Exited with error code: 1
2023-11-04T15:13:12.968836Z Failed: build command exited with code: 1
2023-11-04T15:13:15.960823Z Failed: error occurred while running build command
The problem is that, while it solved the fs and path errors, it created more errors for other missing modules.
I don’t know what I should do to make the build work.