资讯动态

Svelte 最低浏览器版本要求如何查:整体支持矩阵与特性例外表怎么看

发布时间:2026/9/11 10:44:47 来源:尧图企业网站定制
Svelte 最低浏览器版本要求如何查整体支持矩阵与特性例外表怎么看【免费下载链接】svelteweb development for the rest of us项目地址: https://gitcode.com/GitHub_Trending/sv/svelte如果你的 Svelte 应用需要跑在客户或目标用户环境里第一件事是确认目标浏览器版本是否达到 Svelte 的最低要求。Svelte 仓库在 Browser support 文档页 给出了两份表一份是覆盖 Svelte 运行时的整体最低版本矩阵另一份是少数需要更高版本浏览器的特性例外表。本文说明这两份表的位置、每格数值的含义以及这些数字是如何自动生成、需要时如何重新生成的。两个表在哪里文档页 05-browser-support.md 本身只有几句说明两张实际的数据表通过include引入自.generated/目录下的生成文件browser-support.md —— 整体最低版本矩阵browser-support-features.md —— 特性例外表。两个生成文件顶部都有注释generated in packages/svelte/scripts/generate-browser-support.ts. do not edit即表格由脚本生成、不允许手改。文档页同时说明了适用范围这张表只覆盖 Svelte 本身不包含 SvelteKit、其他 Svelte 库或你自己的代码。做兼容性判断时如果项目用了 SvelteKit 或第三方 Svelte 库需要另行核对它们各自的声明。整体支持矩阵怎么读文档页第一句说明表中的最低版本是derived from the browser APIs used by Sveltes internal code即根据 Svelte 内部代码用到的浏览器 API 推导出来的。当前检出的表内容为| 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 |读法上只有三点需要注意每个浏览器的值是最低版本低于该版本不做保证Internet Explorer 一行是not supported属于明确不支持项不是缺数据表尾注释 This equates to a Baseline target of 2020表示这组最低版本等价于 Baseline 2020 目标。判断某个目标环境是否达标时按浏览器逐行对照即可。特性例外表怎么读文档页的 Exceptions 一节写明A few Svelte features require a higher minimum browser version. Youll only need to take the following table into consideration if you use these specific features.——只有当你的代码确实用到表中列出的特性时才需要额外看这张表。当前检出的例外表| Feature | Chrome/Edge | Firefox | Safari | | - | - | - | - | |$state.snapshot| 98 | 94 | 15.4 | |bind:devicePixelContentBoxSize| — | 93 | not supported | |flipfromsvelte/animate| — | 126 | — |表中每个单元格的含义由生成逻辑决定见 render_conditional_table具体版本号使用该特性时对应浏览器的最低要求提高到该版本not supported该浏览器任何版本都不支持该特性。例如bind:devicePixelContentBoxSize在 Safari 一栏如此标注因为 Safari 从不暴露ResizeObserverEntry.devicePixelContentBoxSize该绑定在 Safari 上会读到undefined—灰色短横线该特性在该浏览器上不需要高于整体矩阵的版本。例如bind:devicePixelContentBoxSize的 Chrome 一栏显示—是因为它依赖的 ResizeObserver 选项在 Chrome 84 起可用低于整体下限 87不构成额外要求。三个特性对应的说明文档分别在 02-$state.md 的$state.snapshot一节、12-bind.md 的 Dimensions 一节 和 svelte/animate 参考页。所以例外表的使用流程是先查整体矩阵再检查代码里是否出现了$state.snapshot、bind:devicePixelContentBoxSize或animate:flip出现哪个就把对应行的版本要求纳入你的最低版本判断。表里的数字怎么来的两份表都不是手写的由 generate-browser-support.ts 重新生成配套的检测逻辑在 browser-support.detector.js。脚本注释描述了完整管线用 rollup 以 production export 条件打包每个面向浏览器的运行时入口Node-only 的./compiler、./server、./internal/server子路径被排除再用 TypeScript 编译器 API 走查产物标记出用到的 web-features 特性 ID枚举所有面向用户的特性——每个bind:*、每个公开子包的导出、编译器RUNES数组中的每个 rune以及transition:、animate:、use:、{attach}、{html}、custom elements 等指令的编译 fixture逐个编译、打包、走查某个特性 fixture 的最低 Baseline 年份高于运行时整体下限时才会在例外表中输出一行通过web-features数据把 Baseline 年份换算成各浏览器的具体版本号缺少数据时回退到baseline-browser-mapping按年解析。脚本中还有一组BEHAVIORAL_IGNOREstructured-clone、CSSzoom读取、device-pixel-content-box选项对应运行时确实引用、但只有特定代码路径会走到的 API——这些路径就是例外表存在的理由并且脚本会校验这些条目仍然被检测器命中防止配置过期。重新生成表格并验证如果你检出的仓库中运行时代码已变化、而文档表格可能滞后可以在仓库的 packages/svelte 目录下运行文档记录的脚本package.json中的generate:browser-supportpnpm install pnpm generate:browser-support前提与副作用该脚本会importrollup、rollup/plugin-virtual、rollup/plugin-node-resolve、web-features、baseline-browser-mapping等依赖所以需要先pnpm install装好工作区依赖运行时会写入两个生成文件 browser-support.md 与 browser-support-features.md并重建、清理脚本自建的_baseline临时目录。执行成功后控制台输出Done.此时再用 git diff 对照两个生成文件即可确认版本数字是否发生变化。边界表格范围只有 Svelte 本身SvelteKit、其他库和你自己的代码不在其中例外表只列 Chrome/Edge、Firefox、Safari 三列其他浏览器的特性例外不在这张表里表头数字随 Svelte 运行时使用的 API 变化而可能变化以你所用 Svelte 版本对应的仓库中生成文件为准不要照抄本文中的具体版本号到别处长期复用。【免费下载链接】svelteweb development for the rest of us项目地址: https://gitcode.com/GitHub_Trending/sv/svelte创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价