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

运行ember serve触发EslintValidationFilter构建错误求助

解决Ember Serve时的EslintValidationFilter错误(Cannot read property 'body' of undefined)

我之前在运行ember serve时也碰到过完全一样的问题,这个错误是eslint-plugin-ember插件里的require-super-in-init规则触发的bug,大概率和你components/type-compte.js里的init方法写法有关。下面是几个可行的解决步骤:

步骤1:检查目标文件的init方法

打开components/type-compte.js,找到组件的init方法,看看是不是存在以下情况:

  • init方法是空的(没有函数体)
  • 用了箭头函数定义init(Ember组件的生命周期钩子不推荐用箭头函数)
  • 语法不完整,比如漏写了大括号{}

举个会触发bug的错误写法示例:

// 错误写法:空的init方法
init() {}

// 错误写法:用箭头函数定义init
init = () => {
  super.init(...arguments);
}

步骤2:临时禁用该规则(紧急启动项目)

如果现在需要快速启动项目,不想纠结语法问题,可以先在你的ESLint配置文件(比如.eslintrc.js)里临时禁用这个规则:

module.exports = {
  // 其他配置项...
  rules: {
    // 添加这一行禁用规则
    'ember/require-super-in-init': 'off'
  }
};

步骤3:修复init方法的标准写法

把init方法改成Ember推荐的标准写法,确保有完整的函数体并且正确调用super.init:

init() {
  super.init(...arguments);
  // 这里添加你的初始化逻辑,如果没有逻辑也可以留个注释占位
  // 示例:// 初始化组件状态或绑定事件
}

步骤4:升级eslint-plugin-ember插件

如果是插件版本过低导致的兼容性bug,尝试升级到最新版本:

# npm用户执行
npm update eslint-plugin-ember --save-dev

# yarn用户执行
yarn upgrade eslint-plugin-ember --dev

错误原因说明

这个Cannot read property 'body' of undefined错误,本质是require-super-in-init规则在解析不符合预期的init函数语法时,没有做足够的空值判断,导致尝试读取不存在的body属性时抛出异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:22:06