browserslist使用手册

---
title: browserslist使用手册
date: 2018-06-09 16:29:00
updated: 2018-06-10 12:00:00
categories:
- 网页开发
- 样式兼容
tags:
- nodejs
---

网页样式浏览器兼容解决;查找目标浏端——解决哪些浏览器版本,node版本是我们想兼容的。

for css

# 默认的browserslist@ 配置
//.browserslistrc
iOS >= 7
Android > 4.1
Firefox > 20
last 2 versions

> 0.5%, last 2 versions, Firefox ESR, not dead

//or use in package.json
{
  "browserslist": [
    "iOS >= 7",
    "Android > 4.1",
    "Firefox > 20",
    "last 2 versions"
  ]
}

工具

# npx browserslist

配置文件

目录:
名字:


配置查找

Browserslist will use browsers query from one of this sources

1.Tool options. For example browsers option in Autoprefixer.
2.BROWSERSLIST environment variable.
3.browserslist config file in current or parent directories.
4..browserslistrc config file in current or parent directories.
5.browserslist key in package.json file in current or parent directories. 6.We recommend this way.
6.If the above methods did not produce a valid result Browserslist will use defaults: > 0.5%, last 2 versions, Firefox ESR, not dead.

最佳实践

# 单某浏端
#2 单单谷歌:"browserslist": [ "last 2 Chrome versions"]
# 默认配置
"browserslist": [ "defaults"]

# 最新版本
#2 "browserslist": [ "last 1 version, not dead > 0.2%"] 

# 某个区域
#2 全球
 "browserslist": [ "> 1% "] 
#2 亚洲
 "browserslist": [ "> 1% in alt-AS"] 
#2 中国
"browserslist": [ "> 1% inCN"] 
#2 美国
 "browserslist": [ "> 1% in US"] 
#2 自定数据
 "browserslist": [ "> 1% in my stats"] 

查询组合

# 大小判断:>=, < , <=

# 表示或者:or,,
#2 "browserslist": [ "last 1 version, > 0.2%"]
#2 "browserslist": [ "last 1 version or  > 0.2%"]

# 表示并且:and
#2 "browserslist": [ "last 1 version and > 0.2%"]

# 表示否定:not
"browserslist": [ "last 1 version and not > 0.2%"]

版本兼容

#版本范围

#区域选择
#2亚洲:> 5% in alt-AS

#2自定数据
> 5% in my stats


查看配置

npx browserslist

浏览器表

//注:浏览器名大写小写敏感

//安卓
`Android` for Android WebView.

//苹果
`iOS` or `ios_saf` for iOS Safari.
`Safari` for desktop Safari.

//百度
`Baidu` for Baidu Browser.

//黑梅
`BlackBerry` or bb for Blackberry browser.

//谷歌
`Chrome` for Google Chrome.
`ChromeAndroid` or `and_chr` for Chrome for Android

//微软
`Edge` for Microsoft Edge.
Electron for Electron framework. It will be converted to Chrome version.

//IE
`Explorer` or `ie` for Internet Explorer.
`ExplorerMobile` or `ie_mob` for Internet Explorer Mobile.

//火狐
`Firefox` or `ff` for Mozilla Firefox.
FirefoxAndroid or and_ff for Firefox for Android.

//Opera
`Opera` for Opera.
`OperaMini` or `op_mini` for Opera Mini.
`OperaMobile` or `op_mob` for Opera Mobile.

//QQ
`QQAndroid` or `and_qq` for QQ Browser for Android.

//三星
`Samsung` for Samsung Internet.

//UC
`UCAndroid` or `and_uc` for UC Browser for Android.

参考:https://github.com/browserslist/browserslist#Browsers

共享配置

//steps-01:
//package.json
  "browserslist": [
    "extends browserslist-config-mycompany/desktop",
    "extends browserslist-config-mycompany/mobile"
  ]

//steps-02:
//browserslist-config-mycompany/index.js
module.exports = [
  '> 1%',
  'ie 10'
]

不同环境

[production]
> 1%
ie 10
 
[modern]
last 1 chrome version
last 1 firefox version
 
[ssr]
node 12

自定数据

//step-01:生成文件
//方式1:命令
npx browserslist-ga

//方式2:手写
{
  "ie": {
    "6": 0.01,
    "7": 0.4,
    "8": 1.5
  },
  "chrome": {
    …
  },
  …
}

脚本接口

var browserslist = require('browserslist');

var process = function (source, opts) {
    var browsers = browserslist(opts.browsers, {
        //自定数据
        stats: opts.stats,
        //配置文件
        path:  opts.file,
        //config:opts.config,
       //环境标识
        env:   opts.env,
       //安全检查
       dangerousExtend:opts.dangerousExtend,

    });
    // Your code to add features for selected browsers
}

转换

//node
browserslist.coverage(browserslist('> 1% in US'), 'US')
//=> 83.1

//cli
$ browserslist --coverage=US "> 1% in US"
These browsers account for 83.1% of all users in the US

缓存

//清除
browserslist.clearCaches();

参考文献

browserslist-offical-readme.md
Country-code-defined-in-ISO-3166-1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 2,665评论 0 7
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,747评论 0 3
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,056评论 1 92
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    草里有只羊阅读 18,525评论 0 85
  • 中文翻译 ng help ng build 构建您的应用程序并将其放入输出路径(dist /默认情况下)。 别名:...
    4ea0af17fd67阅读 2,127评论 0 0

友情链接更多精彩内容