开发者工具

Browserslist 查询

输入规则查看目标版本,也可开启对比,检查修改条件后具体增加或移除了哪些浏览器。

Browserslist 查询

查询 A

目标版本

请在 A 中输入查询。

查询在浏览器内处理,不发送或保存输入。

选项与数据

只接受纯查询。逗号或换行分隔条件,# 开始注释。

每侧最多 10000 个字符、100 个子句;后台计算限时 5 秒。

全球打包数据快照,非实时流量或本站受众;刷新不会更新数据库。

Browserslist 4.28.9 · caniuse-lite 1.0.30001810 · Baseline 2.11.21

正在解析目标…

修改构建配置前,先用 Browserslist 查询核对实际的目标浏览器。看似只改了一个逗号,结果却可能多出整个浏览器系列;把 and 当成常见布尔表达式的优先运算,也可能错误理解最终集合。

这里保留官方引擎返回的浏览器标识与版本区间。遇到同事、持续集成环境和在线工具输出不一致时,可以先核对依赖版本,再对照查询条件。只看覆盖率数字,无法判断差异来自规则、数据库还是运行日期。

用 Browserslist 查询审查构建目标

看清每个条件如何改变集合

Browserslist 查询的解释区按执行顺序显示累计目标数量。逗号与 or 加入匹配版本,and 与此前的整个集合取交集,not 则移除匹配版本。展开 defaults 还能看到它实际包含的规则,便于发现某个条件意外扩大或清空了目标范围。

一串筛选条件将浏览器卡片加入列表,并移除被排除的卡片。

对比具体版本,而不只比较数量

把现有规则放在 A,把修改后的规则放在 B,分别查看新增、移除与共有版本。对比依据是完整的浏览器及版本标识;同名浏览器的两个版本不会被合并成一项,Safari 的版本区间也不会被擅自拆成补丁版本。

两组浏览器卡片在中间展示共有成员,两侧保留各自独有成员。

先核对规则的三个隐含前提

01

从配置中取出目标环境的查询

输入接受逗号或换行分隔的纯查询,# 后的内容视为注释。行尾为 and 或 or 时会接续下一条非空行。不要直接粘贴整个 package.json,也不要带上环境节标题;本页不会替你选择生产或开发配置。

02

确认比较方向

A 初始为 defaults;打开对比后,B 初始为 last 2 versions。新增表示 B 中有而 A 中没有的版本,移除方向相反,共有表示交集。列表中的数量是版本条目数,不是覆盖率变化的百分点。

03

等结果更新后再导出

默认停顿 350 毫秒自动解析。关闭自动模式后,可以点击解析或按 Ctrl/Cmd + Enter。输入和对比选项一变,复制与下载立即禁用;页面先显示 50 项,导出的 JSON 仍包含全部结果。

将语法、版本和数据依据放在一起

使用官方规则引擎

浏览器别名、浏览器版本范围、最近版本、ESR、全球使用率门槛、cover 与内置 Baseline 映射均交给官方解析器。规则按顺序组合,不套用普通编程语言中 and 优先于 or 的运算习惯。

逐条显示运算结果

A 与 B 各有独立解释区,展示原始子句、所在行、集合运算和累计数量。defaults 会显示展开内容。这是对目标选择过程的解释,不代表逐项检查了浏览器的全部功能或网页代码。

导出带版本信息的报告

JSON 保存原输入、规范化查询、完整列表、各步计数、对比结果、全球覆盖率及三项依赖版本。生成时间记录本次运行时刻,不能把它理解为数据库发布时间,也不能借此声称数据刚刚更新。

失败可定位,替换可撤销

未知版本和不支持的查询会明确报错,不会忽略条件继续给出看似有效的报告。载入示例或清空前先展示输入替换预览与字符数量,应用后可以撤销一次,同时恢复原输入和原结果。

结果能够说明什么,不能说明什么

全球份额来自打包快照
caniuse-lite 的全球数据随页面打包,既不是实时流量,也不是你的网站访客分布。刷新网页不会更新数据库;核对结果时应比较显示的版本号。相对日期规则还会受到当前设备日期影响。
不读取项目配置或外部统计
不接受 extends、browserslist config、JSON 对象、环境节、国家地区或自定义统计查询。请从需要的环境中取出纯规则。本页不会打开本地项目文件、下载配置包,也不会连接分析账号。
范围限于浏览器目标
Node.js、Electron 和 current node 会被拒绝。当前浏览器引擎也不支持逐项功能的 supports 查询。内置 Baseline 映射可以使用,但浏览器列表不能证明你的样式、脚本或补丁在真实设备上能正常工作。
保留数据库的版本粒度
未知版本严格报错,不用桌面版本历史代替移动浏览器。ios_saf 15.6-15.8 这类值表示数据集中的区间,不能假设每个补丁版本都有独立记录。all 是 Opera Mini 的特殊版本,不是所有浏览器通用的通配符。
输入受限,导出不受分页影响
每侧最多 10000 个字符、100 个子句,后台计算超过五秒会终止。长列表每批显示 50 项,但报告保留全量。合法查询的空交集可以导出;A 为空会清除报告,开启对比时 B 为空则需要补齐。

Browserslist 查询常见问题

怎样查看配置实际选中了哪些浏览器?

把目标环境的纯查询放入 A,查看结果中的浏览器与版本。若要核对项目的配置文件查找和环境选择,请在项目目录运行 npx browserslist。本页用明确的 Browserslist 查询作为输入,便于把结果与旁边的数据版本一起保存。

没有配置时会使用什么默认规则?

上游命令行找不到配置时会回退到 defaults。本页明确预填该规则,展开为 > 0.5%、last 2 versions、Firefox ESR 和 not dead。这里清空输入会得到空工作台,不会偷偷恢复默认规则并继续输出结果。

浏览器数据库需要定期更新吗?

项目可通过当前 update-browserslist-db 流程更新,并审查锁文件和目标列表的变化。本页的数据只有重新构建发布才会改变。保存带依赖版本的报告,可以帮助解释同一规则为什么在之后得到不同结果。

为什么 not and_uc all 会报错?

all 是 Opera Mini 的特殊版本,不是任意浏览器的通用写法。要排除 UC Android,可使用 defaults, not and_uc > 0 这样的有效版本条件。开头必须先有正向查询,单独一个 not 没有可供排除的初始集合。

为什么 last 2 versions 可能出现意料之外的老浏览器?

它针对数据中各浏览器系列的最近版本取值,不是只选择全世界最新发布的两个浏览器。停更系列和稀疏的移动版本历史都可能影响结果。请查看实际列表,再与含 not dead 的规则对比;旧问题中的具体版本未必仍存在于当前输出。

为什么指定 iOS 补丁版本得不到预期结果?

Can I Use 经常将多个 iOS 版本合并为区间,而不是逐个记录补丁号。ios >= 15.7.2 不会生成数据库缺失的补丁记录。应查看返回的 ios_saf 区间,使用数据库已收录的版本,并另外验证实际设备。

版本结果不符合预期?

审查下一次构建配置修改

将现有 Browserslist 查询留在 A,把新方案放入 B,确认新增和移除的版本后,再保存报告。