Ember无法找到已创建组件 调用时报错如何解决
Ember组件创建后调用提示未找到的排查方案
问题现象
- 执行组件创建命令
ember g component general-container后,成功生成general-container.hbs文件 - 使用
<GeneralContainer>标签调用组件时页面空白,控制台抛出错误:
Uncaught Error: Attempted to resolve `general-container`, which was expected to be a component, but nothing was found.
- 公网检索未找到匹配解决方案
环境信息
ember-cli 4.4.0(已降级至4.3.0) ember-source 4.4.1 操作系统:Windows NT 10 Pro x64 21H1 (19043.1645)
排查修复步骤
- 校验文件存放路径
4.x版本Ember默认识别的组件存放路径为app/components/,确认general-container.hbs在该目录下。旧版本常用的app/templates/components/路径在4.x版本默认不会被组件解析器扫描,放错路径直接移到正确目录即可。 - 补全组件类文件
Windows环境下部分4.x小版本的Ember解析器存在兼容问题,哪怕是无逻辑的纯模板组件,也需要同路径下存在对应的js类文件才能被识别。在app/components/下新建general-container.js,写入以下基础内容:import Component from '@glimmer/component'; export default class GeneralContainerComponent extends Component {} - 清理缓存重新构建
4.3/4.4版本ember-cli在Windows下存在构建缓存bug,生成组件后经常出现缓存未更新导致的解析失败:- 关闭本地运行的开发服务
- 删除项目根目录下的
tmp、dist文件夹 - 重新执行
ember s启动服务测试
- 补全生成命令参数重新生成
如果以上操作无效,先删除之前生成的组件相关文件,重新执行生成命令时显式指定组件基类,避免Windows下路径解析异常导致文件生成不全:
生成完成后可以先使用ember g component general-container --component-class=@glimmer/component<general-container>中划线写法的尖括号语法测试渲染,正常渲染后再切换为大驼峰写法即可。
内容的提问来源于stack exchange,提问作者mxbdk
相关产品推荐
相关产品推荐

