Vue CLI 浏览器兼容性

浏览器兼容性

关于浏览器的兼容我们可以从下面一些内容来了解与认识:

Vue CLI 3初始化的项目,你会发现有 package.json 文件里的 browserslist 字段 (或一个单独的 .browserslistrc 文件),指定了项目的目标浏览器的范围。这个值会被 @babel/preset-envAutoprefixer 用来确定需要转译的 JavaScript 特性和需要添加的 CSS 浏览器前缀。

我们通常只需要修改browserslist就可兼容目标浏览器:

"browserslist": [
	"ie 10"
]

Polyfills

一个默认的 Vue CLI 项目会使用 @vue/babel-preset-app 它会通过@babel/preset-envbrowserslist 配置来决定项目需要的polyfill。

现代模式

借助Babel,我们可以利用ES2015 + 中的所有最新语言功能,但是我们也必须提供transpiled 和 polyfilled 包来支持比较旧的浏览器,这些 transpiled bundle 通常比原始的本地 ES2015+ 代码更详细,解析和运行也就更慢。

因此 Vue CLI 提供了现代模式来帮助我们解决了此问题,使用以下命令进行生产构建时,它会产生两个应用程序版本:

  • 一个针对支持 ES 模块的现代浏览器的现代捆绑软件
  • 一个是不针对支持ES 模块的较旧浏览器的传统捆绑 软件
vue-cli-service build --modern

我们还可以在它的配置中来检测当前模式,有时候我们只需要为旧版或现代版更改webpack配置就可以了。

Vue CLI 使用两个环境变量来传达信息:

  • VUE_CLI_MODERN_MODE:构建从 --modern 标志开始。
  • VUE_CLI_MODERN_BUILD:如果为 true,则当前配置适用于现代版本,否则将用于旧版本。
上一篇:babel 依赖


下一篇:Vue学习之Babel配置