在使用Vue 2和Vue CLI时,这个问题一直困扰着我,现在又开始了一个新的Vue 3.0 beta项目。
即使使用当前最新的Vue CLI版本4.3.1,当选择TypeScript选项时,给出的样板代码也将compilerOptions 设置为esnext in tsconfig.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"
}
}
目前esnext
,虽然此时IE11支持还没有准备好(但无论如何可能不会影响此配置).
当使用Vue 3时,建议为这个编译器目标设置什么?
我需要支持传统浏览器直到IE11,但是这个特定的应用程序项目还有足够的时间等待Vue 3的完整发布。
发布于 2020-05-07 14:37:18
正如Vue 3储存库所说,
当前实现需要运行时环境中的本机ES2015+,并且不支持IE11 (尚未)。IE11兼容的构建将在我们达到RC阶段后继续工作。
如前所述,Vue 3目前的目标是esnext
,它依赖于现代的JS特性,目前的目标是开发常绿浏览器,不应该在生产中使用。Vue 3即使目标较低,也不能在遗留浏览器中使用,因为它目前依赖于代理,而代理是不能被多填充的ES6特性。
使用现有Vue 3构建的项目将不会受益于target
低于可能是最不常见的公分母的es2018
,对象扩展是最近在Vue 3代码基中使用的最流行的添加内容之一,不能被多填充。可以通过实验将TypeScript目标降低到es5
,并启用downlevelIteration
选项,以便早期检测某些兼容性问题。
预计Vue 3的单独版本将为传统浏览器(IE11)和现代浏览器维护。区别在于如何处理反应性,因为Proxy
允许高级更改检测,但不能在遗留浏览器中实现。该项目应遵循现有的Vue 2反应性准则,以便与遗留Vue 3构建兼容。
https://stackoverflow.com/questions/61343086
复制相似问题