ux.*_*eer 6 javascript compilation typescript vue.js vuejs3
在使用 Vue 2 和 Vue CLI 时,以及现在启动新的 Vue 3.0 beta 项目时,这个问题多次让我感到困惑。
即使使用当前最新的 Vue CLI 版本 4.3.1,在选择 TypeScript 选项时,给出的样板代码也会将compilerOptions 目标设置为 中的esnexttsconfig.json
。
虽然Vue 2 TypeScript 指南正在指导:
# Recommended Configuration
// tsconfig.json
{
"compilerOptions": {
// this aligns with Vue's browser support
"target": "es5",
// this enables stricter inference for data properties on `this`
"strict": true,
// if using webpack 2+ or rollup, to leverage tree shaking:
"module": "es2015",
"moduleResolution": "node"
}
}
Run Code Online (Sandbox Code Playgroud)
目前Vue Next repo 正在使用esnext
,尽管此时 IE11 支持尚未准备好(但无论如何可能不会影响此配置)...
使用 Vue 3 时,该编译器目标的推荐设置是什么?
我需要支持低至 IE11 的旧版浏览器,但这个特定的应用程序项目在首次发布之前有足够的时间来等待 Vue 3 的完整发布。
正如Vue 3 存储库所述,
当前的实现需要运行时环境为原生 ES2015+,并且尚不支持 IE11。IE11 兼容版本将在我们达到 RC 阶段后进行。
正如所指出的,Vue 3 目前的目标是esnext
,它依赖于现代 JS 功能,目前的目标是在常青浏览器中进行开发,不应该在生产中使用。即使目标较低,Vue 3 也无法在旧版浏览器中使用,因为它目前依赖于无法进行多填充的 ES6 功能代理。
使用现有 Vue 3 构建的项目不会从target
低于es2018
这可能是最小公分母的项目中受益,对象传播是 Vue 3 代码库中使用的最近最流行的添加之一,并且不能进行多填充。可以es5
通过downlevelIteration
启用选项来实验性地降低 TypeScript 目标,以便及早检测到一些兼容性问题。
预计将为旧版 (IE11) 和现代浏览器维护单独版本的 Vue 3。区别在于反应性的处理方式,因为Proxy
允许高级更改检测,但无法在旧版浏览器中实现。该项目应遵循Vue 2 反应性的现有指南,以便与旧版 Vue 3 构建兼容。
归档时间: |
|
查看次数: |
11326 次 |
最近记录: |