前言
最近在看create-react-app,刚好把browserslist的资料整理下来。一方面督促自己多写博客,另一方面练习自己的英语水平(6级还没过的我(;´д`)ゞ
browserslist的作用
这个配置能够分享目标浏览器和nodejs版本在不同的前端工具。这些工具能根据目标浏览器自动来进行配置,
使用方法
(1) package.json (推荐
{
"browserslist": [
"last 1 version",
"> 1%",
"maintained node versions",
"not dead"
]
}
(2) .browserslistrc
# Browsers that we support
last 1 version
> 1%
maintained node versions
not dead
Browserslist 的数据都是来自Can I Use的。如果你想知道配置语句的查询结果可以使用[online demo] (https://browserl.ist/)
你就可以看到最新的各个浏览器版本
支持的插件
Browserslist这个东西单独是没用的,(补充: 在vue官方脚手架中,browserslist字段会被 @babel/preset-env 和 Autoprefixer 用来确定需要转译的 JavaScript 特性和需要添加的 CSS 浏览器前缀。2019-7-22)下面的搭配的工具列表:
- Autoprefixer
- Babel
- postcss-preset-env
- eslint-plugin-compat
- stylelint-no-unsupported-browser-features
- postcss-normalize
了解更多请看这个list
或者npx browserslist
最终选择
Browserslist将使用以下来源之一的浏览器和Node.js版本查询:
- browserslist键入package.json当前或父目录中的文件。 我们推荐这种方式。
- 工具选项。例如browsersAutoprefixer中的选项。
- BROWSERSLIST 环境变量。
- browserslist 当前或父目录中的配置文件。
- .browserslistrc 当前或父目录中的配置文件。
- 如果上述方法没有产生有效结果,则Browserslist将使用默认值: > 0.5%, last 2 versions, Firefox ESR, not dead。
最佳实践
-
last 2 Chrome versions
这种配置最好当你只想在对应的一个浏览器下开发webapp,生产情况下最好不要,毕竟其他浏览器也有市场份额 - 如果你想自己配置,我建议你结合
last 1 version, not dead with > 0.2% (or > 1% in US, > 1% in my stats
.last n version
会增加很过过时的浏览器并且没有增加流行的旧版本浏览器。> 0.2%
看起来更加合适(根据份额来定) - 不要仅因为您不了解浏览器而删除浏览器。Opera Mini在非洲拥有1亿用户,它在全球市场上比微软边缘更受欢迎。中文QQ浏览器的市场份额比Firefox和桌面Safari都要多。(第一次知道,qq还是强啊,但是360呢..)
一些语句的含义
-
dead
: browsers from last 2 version query, but with less than 0.5% in global usage statistics and without official support or updates for 24 months. Right now it is IE 10, IE_Mob 10, BlackBerry 10, BlackBerry 7, and OperaMobile 12.1.
例子
自己项目中使用的
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
最后
毫无疑问这篇很粗浅,还是多看npm文档比较实际...~~再慢慢补充