前端组件事件执行两次,Network中出现两个不同路径的同名模块。通常是多个requirejs-config.js同时map或mixin同一目标。

实际处理步骤

  1. 查看生成后的requirejs-config与Network Initiator,列出目标模块所有map、paths和mixins来源。
  2. 统一由一个模块负责替换;主题和模块不能分别把原模块映射到不同实现,路径名也要保持大小写一致。
  3. Mixin返回目标组件且只注册一次,避免在initialize每次bind全局事件却不dispose。
  4. 删除目标静态目录并重新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

验证结果

目标模块只请求一次、事件只触发一次,两个主题和生产模式下行为一致。