Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

编译TS用tsc还是babel? #147

Open
GGXXMM opened this issue Apr 15, 2023 · 0 comments
Open

编译TS用tsc还是babel? #147

GGXXMM opened this issue Apr 15, 2023 · 0 comments

Comments

@GGXXMM
Copy link
Owner

GGXXMM commented Apr 15, 2023

TS 常用 tsc 编译。如果抛开类型检查和生成 d.tsbabel编译也是可以的。

tsc 编译过程

image

babel 编译过程

image

总结:tsc vs babel

相同点:

  • babeltsc 的编译流程大同小异,都有把源码转换成 AST 的 Parser 和 AST 的 transform,最后都会用 Generator(或Emitter)把 AST 转换生成目标代码和 sourcemap

区别:

  • babel 不做类型检查,也不会生成 d.ts 文件;tsc 都支持。
  • tsc 支持最新的 es 标准特性和部分草案的特性;babel 通过 @babel/preset-env 支持所有标准特性,也可以通过 @babel/proposal-xx 来支持各种非标准特性,支持的语言特性上 babel 更强一些。
  • tsc 没有做 polyfill 的处理,需要全量引入 core-js,而 babel@babel/preset-env 会根据 targets 的配置按需引入 core-js
  • tsc 是整个项目一起编译,babel 是每个文件单独编译。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant