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

Payload CMS(网站模板)Webpack缓存序列化失败问题求助

Payload CMS Webpack缓存序列化错误解决方法

问题描述

执行npm run dev后Webpack编译成功,但出现以下缓存警告:

<w> [webpack.cache.PackFileCacheStrategy] Caching failed for pack: Error: No serializer registered for ConcatSource
<w> while serializing webpack/lib/util/registerExternalSerializer.webpack-sources/ConcatSource -> Array { 2 items } -> ConcatSource

缓存失效导致每次修改代码重启服务器需等待20-30秒,环境为Node v20.11.1、Webpack 8.6.0,所有依赖均为最新版本。

解决方法

  • 临时切换Webpack缓存类型
    在Payload的配置文件(通常是payload.config.ts)中修改Webpack配置,用内存缓存替代文件系统缓存:

    export default buildConfig({
      // 其他配置项
      webpack: (config) => {
        config.cache = {
          type: 'memory',
        };
        return config;
      },
    });
    

    内存缓存不会触发序列化错误,重启后虽仍需重新编译,但读写速度更快,能降低延迟。

  • 降级Webpack到稳定兼容版本
    Webpack 8.x属于新版本,可能与Payload现有配置存在兼容性问题,尝试降级到Webpack 5.x稳定版:

    1. 卸载当前Webpack依赖:
      npm uninstall webpack webpack-cli
      
    2. 安装指定版本:
      npm install webpack@^5.90.0 webpack-cli@^5.1.4 --save-dev
      

    重新执行npm run dev验证缓存是否恢复正常。

  • 统一webpack-sources依赖版本
    多版本webpack-sources可能引发序列化冲突,先检查依赖树:

    npm list webpack-sources
    

    若存在重复版本,在package.json中添加版本锁定:

    "resolutions": {
      "webpack-sources": "^3.2.3"
    }
    

    npm用户需先安装npm-force-resolutions工具,再执行npm install重新安装依赖。

  • 彻底清理依赖与缓存
    清理现有依赖和缓存后重新安装:

    1. 删除依赖文件夹和锁文件:
      rm -rf node_modules package-lock.json
      
    2. 清除npm缓存:
      npm cache clean --force
      
    3. 重新安装依赖:
      npm install
      

内容的提问来源于stack exchange,提问作者Miratek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 03:55:02