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

Polymer 2 Todo应用引入组件后遇DOMException及paper-input显示异常求助

排查Polymer 2 Todo应用的元素重复注册错误

嘿,这个问题我之前在Polymer项目里踩过坑,咱们一步步拆解来解决:

错误本质分析

你看到的 dom-module.html:136 Uncaught DOMException: Failed to execute 'define' on 'CustomElementRegistry': this name has already been used with this registry 错误,核心原因是同一个自定义元素名称被重复注册了。Polymer 2依赖Web Components的CustomElement API,每个元素名在全局注册表中只能存在一次,重复注册就会触发这个报错。而paper-input无法显示,基本是因为这个注册冲突导致元素无法被浏览器识别,自然渲染失败。

具体排查步骤

  • 检查重复的元素引入:打开你的主入口HTML(比如index.html),搜索是否有重复的<link rel="import">标签加载同一个组件(比如多次引入paper-input.html)。如果有,删掉多余的引入。
  • 检查自定义元素命名冲突:确认你自己编写的dom-module的id(比如<dom-module id="my-todo">)没有和Polymer官方元素重名——比如别用paper-xxx、iron-xxx这类官方前缀,避免和paper-input这类官方元素撞名。
  • 清理并重装依赖:有时候bower依赖的版本冲突会导致重复加载核心模块。先删除bower_components文件夹,然后运行:
    bower cache clean
    bower install
    
    确保依赖是干净无冲突的版本。
  • 开启Polymer调试模式定位问题:在index.html的最顶部添加以下脚本,开启调试模式后,控制台会输出详细的元素注册日志,帮你精准定位到底是哪个元素被重复注册了:
    <script>window.Polymer = {debug: true};</script>
    

额外排查点

如果你用到了polymer.json进行构建配置,检查sources或extraDependencies里有没有重复包含某个组件的路径,导致打包时重复引入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:23:37