产品派
返回

Shopify结账扩展迁移Polaris,包体积最高降85%

前端InfoQ 中文站2026/10/22 12:02:01
AI 导读

Shopify对Checkout Blocks进行了架构重构,将五个高流量结账UI扩展从React与旧版Remote UI桥接方案迁移到Preact、Polaris Web Components和remote-dom。相关扩展覆盖约三分之一的定制结账页面,现已使用TypeScript重写,并将API版本从2025-07升级到2026-01。该升级并非可选项:自2026年10月1日起,应用若仍部署早于2026-01版本的扩展,将无法继续使用。

迁移后,五个扩展的传输包体积均有下降,降幅介于40%和85%之间,其中payment-icons扩展减少84.4%。按结账量加权计算,扩展加载时间中位数下降约8%,第90百分位下降7%。性能改善的重要原因是2026-01版remote-dom CLI将每个扩展压缩后体积限制在64KB,而此前通常为100KB至112KB。

依赖替换也带来了明显收益。React被Preact取代,同时移除react-reconciler,单项即可节省约89KB。团队还用内部称为“droplet”的Liquid解析器替换liquidjs,前者压缩后约13KB,后者约73KB;该解析器已使用真实商家配置形成的42000行对照语料完成兼容性验证。dayjs则被轻量自研日期工具取代,markdown-to-jsx继续保留,仅增加了Preact别名映射。

Shopify为需要自行迁移的开发者提供升级指南、AI工具包,以及Checkout和Customer Account扩展的专门迁移文档。实际调整中,大多数旧版Polaris React组件会改为与框架无关的s-*自定义元素,并由Shopify CDN加载。Preact与框架无关Web Components的方案最早在2025年底的API 2025-10版本中出现,早期反馈总体积极;Gadget认为Preact以很小的运行时提供了接近React的开发体验,部分开发者也认可这些组件不使用Shadow DOM。

随着2026-01成为强制标准,社区评价出现分歧。2026年4月,有开发者在论坛表示,无法锁定版本的CDN脚本会带来严重稳定性风险,相关讨论延续至年中。Reddit上也有用户批评新组件覆盖不完整,例如缺少Polaris React中的Index Table。Checkout Blocks是用于无代码定制结账流程的应用,Polaris则是Shopify的开源设计系统,其Web Components以自定义元素形式提供跨框架一致的界面渲染能力。

ShopifyWeb ComponentsPreact前端架构

本文基于公开渠道信息整理,内容可能存在不准确或遗漏之处,不代表本站立场,如内容涉及侵权或错误,请联系我们处理。

阅读原文