为什么需要:
根据提供的目标浏览器的环境来,智能添加css前缀,js的polyfill垫片,来兼容旧版本浏览器,而不是一股脑的添加。避免不必要的兼容代码,以提高代码的编译质量。
共享使用browserslist的组件们:
组件名 | 功能 |
---|---|
Autoprefixer | postcss添加css前缀组件 |
bable-preset-env | 编译预设环境 智能添加polyfill垫片代码 |
eslint-plugin-compat | |
stylelint-no-unsupported-browser-features | |
postcss-normalize | |
等等... |
基础语法: 只要package.json
配置了browserslist
对象,需要的组件将自动匹配到并使用,也可以配置到具体的组件参数上
"> 1%" // 全球超过1%的人使用的浏览器,由全球使用统计数据选择的浏览器版本。>=, <和<=也可以运行。 "> 1% in US" // 使用美国使用统计。它接受两个字母的国家代码。代码的列表可以在node_modules/caniuse-lite/data/regions中找到。 "> 1% in alt-AS" // 使用亚洲地区的使用统计。所有区域代码的列表可以在node_modules/caniuse-lite/data/regions中找到。 "> 1% in my stats" // 使用自定义数据。 "cover 99.5%" // 提供覆盖率的大多数流行浏览器。 "cover 99.5% in US" // 同上,两个字母的国家代码。 "cover 99.5% in my stats" // 使用自定义数据。 "maintained node versions" // 所有Node.js版本,仍然由node .js Foundation维护。 "node 10" 和 "node 10.4" // 选择最新的node .js 10.x。x或10.4。x版本。 "current node" // Browserslist现在使用的node .js版本。 "extends browserslist-config-mycompany" // 从browserslist-config-mycompany npm包中获取查询。 "ie 6-8" // 选择一个包含所有版本的范围。 "Firefox > 20" // 大于20更新的Firefox版本。>=, <和<=也可以运行。它也适用于Node.js。 "iOS 7" // 直接使用iOS浏览器版本7。 "Firefox ESR" // 最新的[Firefox ESR]版本。 "unreleased versions 或 unreleased Chrome versions" // alpha和beta 测试版本。 "last 2 major versions 或 last 2 ios major versions" // 所有次要/补丁版本的最后两个主要版本。 "since 2015"或"last 2 years" // 2015年(也可以 2015-03和2015-03-10)以来发布的所有版本。 "dead" // 来自上两个版本查询的浏览器,但在全球使用统计中占不到0.5%,并且24个月没有官方支持或更新。现在是IE 10、IE_Mob 10、BlackBerry 10、BlackBerry 7和OperaMobile 12.1。 "last 2 versions" // 每个浏览器的最后两个版本。 "last 2 Chrome versions" // 最后2个Chrome浏览器版本。 "defaults" // Browserslist默认浏览器(> 0.5%,last 2 versions,Firefox ESR,not dead)。 "not ie <= 8" // 排除以前查询选择的浏览器。 您可以向任何查询添加 “not”。 组合查询: "or" 组合器可以使用关键字 "or“ 就像 ”,“。"last 1 version or > 1%"相当于”last 1 version, > 1%“ ”and“ 还支持组合查询来执行前一个查询的交集:”last 1 version and > 1%“。 有3种不同的方法来组合查询,如下所示。首先,您从一个查询开始,然后我们将这些查询组合起来以得到最终的列表。 显然,您不能从 ”not“ 组合器开始,因为没有用于组合它的左侧查询。 or/ , > 5% or last 2 versions > 5%, last 2 versions and > 5% and last 2 versions not > 5% and not last 2 versions > 5% or not last 2 versions > 5%, not last 2 versions
筛选后查询,验证:npx browserslist
打印出所有浏览器版本支出情况,