前端组件事件执行两次,Network中出现两个不同路径的同名模块。通常是多个requirejs-config.js同时map或mixin同一目标。
实际处理步骤
- 查看生成后的requirejs-config与Network Initiator,列出目标模块所有map、paths和mixins来源。
- 统一由一个模块负责替换;主题和模块不能分别把原模块映射到不同实现,路径名也要保持大小写一致。
- Mixin返回目标组件且只注册一次,避免在initialize每次bind全局事件却不dispose。
- 删除目标静态目录并重新deploy,清浏览器与CDN缓存后用无痕窗口复测。
检查命令
rg -n "map:|mixins:|Vendor_Module/js/component" app/code app/designfind pub/static -name requirejs-config.js -printbin/magento setup:static-content:deploy -f
验证结果
目标模块只请求一次、事件只触发一次,两个主题和生产模式下行为一致。

