如果我在 Vue.js 3 项目中使用 TypeScript,我的代码会被转译两次吗?

Zil*_*ilk 6 web-applications typescript vue.js babeljs vue-cli

我在 TypeScript、Vue 或 Node 生态系统方面都不是很有经验。

我有一个使用 Vue CLI 创建的工作设置,带有 Vue 3 和 TypeScript,与vue create生成项目和配置的方式几乎没有变化。如果我理解正确,Babel 将参考"browserslist"我的配置package.json并添加 polyfills/rewrite 代码以与旧浏览器一起使用。TypeScript 编译器也有--target--lib选项,它们似乎做类似的事情。

我在 Vue 项目中编写的 TypeScript 代码是否经过了两次转换,首先由 TypeScript 编译器转译,然后由 Babel 转译?如果是这样,有没有办法避免这种冗余?


编辑添加:我刚刚使用上述设置创建了一个新的空白项目,并被问到我是否想要“将 Babel 与 TypeScript 一起使用(现代模式需要,自动检测的 polyfill,转译 JSX)”。我不在 Vue 中使用 JSX,但谁能拒绝“现代模式”,不管那是什么。

Lk7*_*k77 1

我知道这已经很老了,但是对于发现这个的人来说,

TypeScript 可以通过 babel 或 typescript 编译器进行转译,通常使用 babel 的项目也会使用 babel 来转译 typescript。在这种情况下,打字稿编译器将仅处理类型文件(.d.ts)

即使你使用 typescript 编译器来转译你的 ts 代码并使用 babel 再次转译(这不是通常的设置),它仍然完全没问题

所以很可能你的代码没有被转译两次