Strapi 4.15.4项目启动报错:无法读取undefined的'attributes'属性
Strapi启动报错:无法读取未定义对象的'attributes'属性
环境信息
- Strapi版本:4.15.4
- 操作系统:Mac OS 12.7.1 (Monterey)
- 数据库:SQLite
- Node版本:v18.16.1
- NPM版本:9.5.1
操作流程
- 从Github仓库下载Strapi项目
- 执行
npm install - 复制.env文件
- 执行
npm run develop启动项目
报错详情
[ERROR] 发生意外错误,请使用--debug参数获取更多信息 TypeError: 无法读取未定义对象的'attributes'属性 at Module.getNonVisibleAttributes (/Users/carlosraulcarcamotejada/Downloads/strapi-afp-main/node_modules/@strapi/utils/dist/index.js:754:11) at getNestedFields (/Users/carlosraulcarcamotejada/Downloads/strapi-afp-main/node_modules/@strapi/admin/server/services/content-type.js:30:51) at /Users/carlosraulcarcamotejada/Downloads/strapi-afp-main/node_modules/@strapi/admin/server/services/content-type.js:43:31 at /Users/carlosraulcarcamotejada/Downloads/strapi-afp-main/node_modules/lodash/lodash.js:928:11 at /Users/carlosraulcarcamotejada/Downloads/strapi-afp-main/node_modules/lodash/lodash.js:4967:15 at baseForOwn (/Users/carlosraulcarcamotejada/Downloads/strapi-afp-main/node_modules/lodash/lodash.js:3032:24) at /Users/carlosraulcarcamotejada/Downloads/strapi-afp-main/node_modules/lodash/lodash.js:4936:18 at baseReduce (/Users/carlosraulcarcamotejada/Downloads/strapi-afp-main/node_modules/lodash/lodash.js:925:5) at Function.reduce (/Users/carlosraulcarcamotejada/Downloads/strapi-afp-main/node_modules/lodash/lodash.js:9749:14) at getNestedFields(/Users/carlosraulcarcamotejada/Downloads/strapi-afp-main/node_modules/@strapi/admin/server/services/content-type.js:32:12)
排查与解决方法
检查内容类型配置文件
报错根源是内容类型(content-type)配置存在异常,可能缺失attributes字段或结构错误:- 进入
src/api目录,逐个检查每个内容类型的schema.json/schema.js文件,确保每个配置都包含完整的attributes对象,无语法错误或字段缺失。 - 重点核查嵌套字段(如组件、动态区域)的引用是否正确,避免出现未定义的关联类型。
- 进入
清理依赖与缓存
- 删除
node_modules和package-lock.json,重新安装依赖:rm -rf node_modules package-lock.json npm install - 清理Strapi缓存:
npm run clean - 重新启动项目:
npm run develop
- 删除
验证.env配置完整性
确认复制的.env文件包含必要配置项,比如SQLite的DATABASE_CLIENT、DATABASE_FILENAME等参数,避免因配置缺失导致内容类型加载失败。检查仓库文件完整性
对比Github仓库文件列表,确认本地项目未缺失src/api下的内容类型目录或配置文件,避免.gitignore规则过滤了关键文件。启用debug模式定位问题
执行npm run develop -- --debug启动项目,查看更详细的错误日志,精准定位触发报错的具体内容类型或字段。
内容的提问来源于stack exchange,提问作者Carlos Raúl Cárcamo Tejada
相关产品推荐
相关产品推荐

