keystone-next执行yarn build构建失败,提示webpack模块未找到
keystone-next 执行yarn build构建失败问题解决
核心原因定位
构建失败的直接报错为ModuleNotFoundError: Module not found: Error: Can't resolve '........keystone',是旧版本@keystone-next/admin-ui在Windows系统下生成Admin UI代码时相对路径拼接逻辑错误导致,同时你使用的全体系keystone-next依赖版本过旧,存在多处兼容问题。
分步解决步骤
- 清理本地缓存文件
首先删除项目中自动生成的缓存、依赖和锁定文件,避免历史数据干扰:
# Windows系统执行 rmdir /s /q .keystone node_modules del yarn.lock # macOS/Linux系统执行 rm -rf .keystone node_modules yarn.lock
- 升级keystone相关依赖版本
将所有@keystone-next开头的依赖升级到修复了路径bug的版本,参考配置如下:
"dependencies": { "@keystone-next/auth": "^34.0.0", "@keystone-next/keystone": "^26.0.0", "@keystone-next/admin-ui": "^15.0.0", "@keystone-next/cloudinary": "^8.0.0", "@keystone-next/fields": "^13.0.0", "@keystone-next/types": "^24.0.0", // 剩余非keystone依赖可保留原有版本 }
- 重新安装依赖
执行以下命令重新安装所有依赖:
yarn install
- 更新caniuse-lite数据库
按照构建警告提示更新浏览器兼容数据库,消除额外警告:
npx browserslist@latest --update-db
- 重试构建
执行yarn build验证问题是否修复。
兼容备选方案
如果项目不能适配高版本keystone-next依赖,可使用临时修复方案:
- 先执行
keystone-next dev启动开发服务,等待.keystone目录下的Admin UI代码完全生成 - 手动修改
.keystone/admin/pages/api目录下文件中错误的........keystone导入路径,替换为正确的相对路径(通常为../../../../keystone) - 再次执行
yarn build即可完成构建
内容的提问来源于stack exchange,提问作者MohamedGelsaffy
相关产品推荐
相关产品推荐

