新闻详情

新闻详情

首页 / 资讯中心 / 详情

Svelte 浏览器支持:最低版本要求、功能例外表及其自动化生成机制

发布时间:2026/9/5 16:59:46来源:尧图网络
Svelte 浏览器支持:最低版本要求、功能例外表及其自动化生成机制
Svelte 浏览器支持最低版本要求、功能例外表及其自动化生成机制【免费下载链接】svelteweb development for the rest of us项目地址: https://gitcode.com/GitHub_Trending/sv/svelte本文讲解 Svelte 的浏览器支持矩阵哪些浏览器版本是 Svelte 运行时的最低门槛、哪些特定功能需要更高的浏览器版本以及这套数据是如何通过构建管线rollup 打包 TypeScript 类型感知扫描 Baseline 数据自动生成并维护的。读完后你既能直接查表确定部署目标也能理解表格背后每个数字的来源从而准确评估自己项目而非仅 Svelte 本体的兼容性。一、Svelte 的最低浏览器版本要求下表是 Svelte 官方文档声明的最低浏览器版本它由 Svelte 内部代码实际使用的浏览器 API 推导而来数据快照见 browser-support.md| Browser | Minimum version | | - | - | | Chrome/Edge | 87 | | Firefox | 83 | | Safari | 14 | | Opera | 73 | | Opera (Android) | 62 | | Samsung Internet | 14.0 | | Android WebView | 87 | | Internet Explorer | not supported |需要强调三点边界范围仅限 Svelte 本身。官方文档 05-browser-support.md 明确说明该表不覆盖 SvelteKit、其他 Svelte 生态库也不覆盖你自己的代码。如果你的应用还依赖第三方库实际兼容基线取决于其中最严格的那一方。这是一个 Baseline 目标。表格注释将其等价于 Baseline 2020 目标即 Web 平台 Baseline 体系中 2020 年及以前达到基线的全部 API 都可用。Internet Explorer 不受支持表格中直接标注 not supported。二、功能例外部分特性要求更高的浏览器版本并非所有 Svelte 功能都满足上面这条基线。少数功能依赖更新的浏览器 API只有当你确实使用了这些特定功能时才需要关注第二张表快照见 browser-support-features.md| Feature | Chrome/Edge | Firefox | Safari | | - | - | - | - | |$state.snapshot| 98 | 94 | 15.4 | |bind:devicePixelContentBoxSize| — | 93 | not supported | |flipfromsvelte/animate| — | 126 | — |表中 “—” 表示该浏览器满足基线即可无需额外版本要求“not supported” 表示该浏览器截至表格生成时没有支持该 API功能实际不可用。结合生成脚本 generate-browser-support.ts 中的注释和源码可以弄清这三行的来历$state.snapshot快照机制依赖structuredClone。该 API 在运行时确实被调用见 clone.js 中两处structuredClone(value)调用L110、L131。bind:devicePixelContentBoxSize依赖 ResizeObserver 的box: device-pixel-content-box构造选项和entry.devicePixelContentBoxSize属性对应运行时代码 size.js。脚本注释说明Safari 从 15.4 起静默接受该选项但从未暴露对应的 entry 属性因此该绑定在任意版本的 Safari 上读取的都是undefined——这就是表中 Safari 标注 not supported 的原因。flipsvelte/animate其 fallback 路径会读取getComputedStyle(current).zoom见 animate/index.js。Firefox 直到 126 版本才在CSSStyleDeclaration上暴露.zoom更早版本读取结果为空字符串会破坏动画计算——因此只有 Firefox 一列需要提升版本要求。三、表格如何生成从打包到 Baseline 推导的完整管线上述两张表都是自动生成的文件头部标注 “do not edit”由 generate-browser-support.ts 重新生成 05-browser-support.md 中include的两个.generated片段。脚本头部的管线说明概括了四步按用户视角打包每个运行时入口。脚本读取 package.json 的exports字段枚举所有面向浏览器的子包browser_subpaths()自动过滤./compiler、./server等 Node-only 导出再用 rollup 以[production, import, browser, default]导出条件打包bundle()函数。这样扫描的是浏览器中真实执行的代码而非源码。类型感知扫描。检测器 browser-support.detector.js 用 TypeScript 编译器 API 构建ts.Program TypeChecker遍历打包产物全局标识符如structuredClone、ResizeObserver类型成员访问按接收者的解析类型匹配如CSSStyleDeclaration.zoomJS 语法特性可选链、空值合并、私有字段等见SYNTAX_PREDICATES表特定字符串字面量如device-pixel-content-box用于捕获 AST 无法体现的构造器选项。 扫描结果映射到web-features数据集里的 feature ID。此外register_extra_rules()注册了补充规则用于web-features尚未收录的 API即上文 Firefox 126 的zoom读取和 ResizeObserver 的 device-pixel 选项两条。 除运行时包外脚本还会加载快照测试目录tests/snapshot/samples中所有编译器产出的 client JS 做纯语法扫描覆盖编译器会生成的各种模式绑定、过渡、svelte:element、水合标记等。推导 Baseline 年份。compute_floor()取所有被检出 feature 的最高 Baseline 年份作为运行时基线并保证不低于 2015Math.max(year, 2015)确保文档永远不会声称一个 ES6 之前的目标。翻译为具体浏览器版本。优先使用web-features的逐功能精确版本数据缺失时回退到baseline-browser-mapping的年份映射browser_versions_for()调用getCompatibleVersions({ targetYear, includeDownstreamBrowsers: true })并过滤掉 UC、QQ 等长尾浏览器以保持表格聚焦。Chrome 与 Edge 版本相同时合并为一行展示与上表一致。脚本还有一道自检validate_ignore_features()会校验每条“行为性忽略”条目仍能被检测器检出若 API 已从运行时移除则直接报错提示维护者删除陈旧条目——这保证了抑制清单不会悄悄过时。四、抑制清单为什么某些 API 不抬高基线生成脚本定义了两类“抑制”ignore理解它们是读懂表格的关键SAFE_TO_IGNORE数据安全豁免——无论运行时当前是否使用该 API 都不影响基线原因有二web-features数据集误分类了 API。例如devicepixelratio因数据集中 Safari 支持信息缺失被标记为 Baseline false但该属性实际上早在十年前就已进入所有 SafariSvelte 对 API 做了运行时特性检测并在不可用时优雅降级。典型例子是trusted-typesreconciler.js 用globalThis?.window?.trustedTypes ...createPolicy(svelte-trusted-html, ...)的可选链写法——旧浏览器读不到trustedTypes时表达式直接短路功能正常降级。BEHAVIORAL_IGNORE行为性抑制——这些 API 确实存在于运行时但只经由特定代码路径触达已在“功能例外表”中单独说明因此不抬高总体基线。当前包含structured-clone对应$state.snapshot、extra:css-zoom-readflip的 zoom 读取和extra:device-pixel-content-box三条恰好与第二张表的三行一一对应。五、实践指引常规部署按第一张表配置即可等价于 Baseline 2020 目标IE 用户直接放弃支持。使用了例外功能如果你用到$state.snapshot、bind:devicePixelContentBoxSize或animate:flip按第二张表取更严格的版本其中bind:devicePixelContentBoxSize在 Safari 上根本不可用需要为该绑定准备降级方案。数据会随版本演进表格由脚本从“打包产物 → API 检出 → Baseline 数据”链路生成Svelte 内部每引入或移除一个 API重新运行脚本就会刷新表格因此本文引用的版本数字以当前仓库快照为准升级 Svelte 后建议重新核对官方文档页。别忘了你自己的代码和生态依赖官方表格只约束 Svelte 本体完整兼容性评估还需叠加你的业务代码、SvelteKit 及其他库的要求。关键文件索引| 内容 | 路径 | | - | - | | 官方浏览器支持文档主体 | 05-browser-support.md | | 基线版本表生成产物 | browser-support.md | | 功能例外表生成产物 | browser-support-features.md | | 生成脚本打包 扫描 渲染 | generate-browser-support.ts | | 类型感知 API 检测器 | browser-support.detector.js | |structuredClone使用处 | clone.js | |trusted-types特性检测处 | reconciler.js | | ResizeObserver device-pixel 绑定 | size.js | |flip的 zoom 读取 | animate/index.js |【免费下载链接】svelteweb development for the rest of us项目地址: https://gitcode.com/GitHub_Trending/sv/svelte创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

动态Harness:编码智能体在SWE-bench Verified上达到82.6%的工程密码 2026/9/5 17:35:53

动态Harness:编码智能体在SWE-bench Verified上达到82.6%的工程密码

之前在做编码智能体落地时,我最大的感受是:模型能力提升得很快,但想稳定跑完一个真实仓库的 Issue,仍然要跟“上下文丢失、工具调用失控、验证不闭环”这些问题反复拉扯。最近看到 openJiuwen 这篇论文,标题里的“动态…

阅读更多 →
AutoGPT Platform 前端实践:用 useState 惰性初始化消除每次渲染的冗余计算 2026/9/5 17:35:53

AutoGPT Platform 前端实践:用 useState 惰性初始化消除每次渲染的冗余计算

AutoGPT Platform 前端实践:用 useState 惰性初始化消除每次渲染的冗余计算 【免费下载链接】AutoGPT AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matter…

阅读更多 →
微信聊天记录导出完全指南:把对话永久备份为 HTML、Word、CSV 并生成年度报告 2026/9/5 17:35:53

微信聊天记录导出完全指南:把对话永久备份为 HTML、Word、CSV 并生成年度报告

微信聊天记录导出完全指南:把对话永久备份为 HTML、Word、CSV 并生成年度报告 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/Gi…

阅读更多 →
DataEase 选型指南:社区版与企业版差异一次讲清 2026/9/5 17:35:53

DataEase 选型指南:社区版与企业版差异一次讲清

DataEase 选型指南:社区版与企业版差异一次讲清 【免费下载链接】dataease 🔥 人人可用的开源 BI 工具,数据可视化神器。An open-source BI tool alternative to Tableau. 项目地址: https://gitcode.com/GitHub_Trending/da/dataease …

阅读更多 →
faster-whisper 完全指南:用 Whisper 语音识别快速把音频转成带时间戳的文本 2026/9/5 17:35:53

faster-whisper 完全指南:用 Whisper 语音识别快速把音频转成带时间戳的文本

faster-whisper 完全指南:用 Whisper 语音识别快速把音频转成带时间戳的文本 【免费下载链接】faster-whisper Faster Whisper transcription with CTranslate2 项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper faster-whisper 是基于 CTr…

阅读更多 →
微信聊天记录导出指南:4 步把聊天记录完整存成文件(免费开源工具教程) 2026/9/5 17:32:52

微信聊天记录导出指南:4 步把聊天记录完整存成文件(免费开源工具教程)

微信聊天记录导出指南:4 步把聊天记录完整存成文件(免费开源工具教程) 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https:/…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞