browserslist 配置兼容IE问题
一、browserslist 什么
用于指定浏览器范围。你会发现有 package.json 文件里的 browserslist 字段 (或一个单独的 .browserslistrc 文件),指定了项目的目标浏览器的范围。这个值会被 @babel/preset-env 和 Autoprefixer 用来确定需要转译的 JavaScript 特性和需要添加的 CSS 浏览器前缀。
参考链接:https://cli.vuejs.org/zh/guide/browser-compatibility.html
二、not dead 规则是什么
原文:browsers without official support or updates for 24 months. Right now it is IE 11, IE_Mob 11, BlackBerry 10, BlackBerry 7, Samsung 4, OperaMobile 12.1 and all versions of Baidu.
机翻:24个月没有官方支持或更新的浏览器。目前它是IE 11,IE_Mob 11,黑莓10,黑莓7,三星4,OperaMobile 12.1和百度的所有版本。
参考链接:https://github.com/browserslist/browserslist
三、我遇到的打包问题
1. 问题描述:
"browserslist": [
"> 1%",
"last 2 versions",
"not dead",
"not ie <= 10"
],
如果你的项目要兼容IE,但你的browserslist规则是这样的,那么打包的就会有个提示:All browser targets in the browserslist configuration have supported ES module.Therefore we don't build two separate bundles for differential loading.那么这里就不会打包兼容IE的代码。
2. 原因分析:
以上规则里已经没有IE了,那是因为 browserslist 项目在2022年6月21日提交了:Mark Internet Explorer as dead (#701) 链接,将Internet Explorer标记为已死。
3. 解决方案:
去掉"not dead"规则
————————————————
原文链接:https://blog.csdn.net/weixin_44765667/article/details/125449194