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

PayloadCMS项目构建报错:cloudflare:sockets未被Webpack插件处理

PayloadCMS 项目构建报错:UnhandledSchemeError: cloudflare:sockets 未被插件处理

我是PayloadCMS新手,基于空白模板创建了第一个项目。执行pnpm build命令构建时,Webpack编译失败,报错信息如下:
UnhandledSchemeError: Reading from "cloudflare:sockets" is not handled by plugins
提示Webpack默认仅支持"data:"和"file:" URI,需要额外插件处理"cloudflare:"协议,但我并未为PostgreSQL配置任何Cloudflare相关内容,搜索资料、咨询ChatGPT均未找到有效解决方案。

完整错误日志

[black-purple@MacBook-Pro.local project-name ]$ pnpm build

> project-name@1.0.0 build /Users/black-purple/Documents/code/my-lms/project-name
> cross-env NODE_OPTIONS=--no-deprecation next build

 ⚠ The config property `experimental.turbo` is deprecated. Move this setting to `config.turbopack` as Turbopack is now stable.
   ▲ Next.js 15.3.0
   - Environments: .env

   Creating an optimized production build ...
Failed to compile.

cloudflare:sockets
Module build failed: UnhandledSchemeError: Reading from "cloudflare:sockets" is not handled by plugins (Unhandled scheme).
Webpack supports "data:" and "file:" URIs by default.
You may need an additional plugin to handle "cloudflare:" URIs.
    at /Users/black-purple/Documents/code/my-lms/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/webpack/bundle5.js:29:408376
    at Hook.eval [as callAsync] (eval at create (/Users/black-purple/Documents/code/my-lms/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/webpack/bundle5.js:14:9224), <anonymous>:6:1)
    at Object.processResource (/Users/black-purple/Documents/code/my-lms/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/webpack/bundle5.js:29:408301)
    at processResource (/Users/black-purple/Documents/code/my-lms/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/loader-runner/LoaderRunner.js:1:5308)
    at iteratePitchingLoaders (/Users/black-purple/Documents/code/my-lms/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/loader-runner/LoaderRunner.js:1:4667)
    at runLoaders (/Users/black-purple/Documents/code/my-lms/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/loader-runner/LoaderRunner.js:1:8590)
    at NormalModule._doBuild (/Users/black-purple/Documents/code/my-lms/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/webpack/bundle5.js:29:408163)
    at NormalModule.build (/Users/black-purple/Documents/code/my-lms/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/webpack/bundle5.js:29:410176)
    at /Users/black-purple/Documents/code/my-lms/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/webpack/bundle5.js:29:82494
    at NormalModule.needBuild (/Users/black-purple/Documents/code/my-lms/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/webpack/bundle5.js:29:414160)

Import trace for requested module:
cloudflare:sockets
./node_modules/.pnpm/pg-cloudflare@1.2.5/node_modules/pg-cloudflare/dist/index.js
./node_modules/.pnpm/pg@8.11.3/node_modules/pg/lib/stream.js
./node_modules/.pnpm/pg@8.11.3/node_modules/pg/lib/connection.js
./node_modules/.pnpm/pg@8.11.3/node_modules/pg/lib/index.js
./node_modules/.pnpm/@payloadcms+db-postgres@3.33.0_@types+react@19.1.0_payload@3.33.0_graphql@16.11.0_typescript@5.7.3__react@19.1.0/node_modules/@payloadcms/db-postgres/dist/connect.js
./node_modules/.pnpm/@payloadcms+db-postgres@3.33.0_@types+react@19.1.0_payload@3.33.0_graphql@16.11.0_typescript@5.7.3__react@19.1.0/node_modules/@payloadcms/db-postgres/dist/index.js
./src/payload.config.ts
./src/app/(frontend)/(auth)/_actions/actions.ts

cloudflare:sockets
Module build failed: UnhandledSchemeError: Reading from "cloudflare:sockets" is not handled by plugins (Unhandled scheme).
Webpack supports "data:" and "file:" URIs by default.
You may need an additional plugin to handle "cloudflare:" URIs.
    at /Users/black-purple/Documents/code/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/webpack/bundle5.js:29:408376
    at Hook.eval [as callAsync] (eval at create (/Users/black-purple/Documents/code/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/webpack/bundle5.js:14:9224), <anonymous>:6:1)
    at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (/Users/black-purple/Documents/code/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/webpack/bundle5.js:14:6378)
    at Object.processResource (/Users/black-purple/Documents/code//project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/webpack/bundle5.js:29:408301)
    at processResource (/Users/black-purple/Documents/code//project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/loader-runner/LoaderRunner.js:1:5308)
    at iteratePitchingLoaders (/Users/black-purple/Documents/code/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/loader-runner/LoaderRunner.js:1:4667)
    at runLoaders (/Users/black-purple/Documents/code/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/loader-runner/LoaderRunner.js:1:8590)
    at NormalModule._doBuild (/Users/black-purple/Documents/code/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/webpack/bundle5.js:29:408163)
    at NormalModule.build (/Users/black-purple/Documents/code/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/webpack/bundle5.js:29:410176)
    at /Users/black-purple/Documents/code/project-name/node_modules/.pnpm/next@15.3.0_react-dom@19.1.0_react@19.1.0__react@19.1.0_sass@1.77.4/node_modules/next/dist/compiled/webpack/bundle5.js:29:82494

Import trace for requested module:
cloudflare:sockets
./node_modules/.pnpm/pg-cloudflare@1.2.5/node_modules/pg-cloudflare/dist/index.js
./node_modules/.pnpm/pg@8.11.3/node_modules/pg/lib/stream.js
./node_modules/.pnpm/pg@8.11.3/node_modules/pg/lib/connection.js
./node_modules/.pnpm/pg@8.11.3/node_modules/pg/lib/index.js
./node_modules/.pnpm/@payloadcms+db-postgres@3.33.0_@types+react@19.1.0_payload@3.33.0_graphql@16.11.0_typescript@5.7.3__react@19.1.0/node_modules/@payloadcms/db-postgres/dist/connect.js
./node_modules/.pnpm/@payloadcms+db-postgres@3.33.0_@types+react@19.1.0_payload@3.33.0_graphql@16.11.0_typescript@5.7.3__react@19.1.0/node_modules/@payloadcms/db-postgres/dist/index.js
./src/payload.config.ts
./src/app/(payload)/api/graphql-playground/route.ts


> Build failed because of webpack errors
 ELIFECYCLE  Command failed with exit code 1.

解决方案

方案1:配置Next.js Webpack忽略cloudflare:sockets协议

在项目根目录的next.config.js中添加Webpack配置,让它忽略该协议的解析:

/** @type {import('next').NextConfig} */
const nextConfig = {
  webpack: (config) => {
    config.resolve.fallback = {
      ...config.resolve.fallback,
      "cloudflare:sockets": false,
    };
    return config;
  },
};

module.exports = nextConfig;

方案2:隔离数据库连接代码到服务器端

从错误追踪可以看到,前端代码(如_actions/actions.ts、graphql-playground/route.ts)直接引入了包含数据库连接逻辑的payload.config.ts。需要调整代码结构:

  • 将数据库初始化、Payload配置相关逻辑封装为仅服务器端可用的模块
  • 在Server Actions、API路由或Server Components中导入该模块,避免客户端代码加载数据库连接依赖

方案3:强制替换pg-cloudflare依赖(可选)

如果确认不需要Cloudflare环境支持,可以通过pnpm的依赖覆盖功能,让pg使用普通的socket实现:
在package.json中添加如下配置:

{
  "pnpm": {
    "overrides": {
      "pg-cloudflare": "npm:pg@^8.11.3"
    }
  }
}

执行pnpm install重新安装依赖后再尝试构建。

内容的提问来源于stack exchange,提问作者black-purple

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 06:27:01