为什么在使用ts-loader时需要配合babel-loader?

60
1个回答

96

ts-loader可以将typescript(es6)转换成javascript(es6)

babel-loader将javascript(es6)转换为javascript(es5),而Typescript不提供polyfills,但babel提供了。如果你用es6编写客户端代码并希望在现代浏览器上运行它,可能需要使用babelpolyfills

对于服务器端代码来说,最新的node版本已经支持es6,因此使用tsc就足够了。但是,babel仍然提供了一些有用的功能,如缓存或大量插件。

这并不是必需的,但将它们全部一起使用是一个好的实践。


3
据我所知,我们需要手动使用babel-polyfills。对吗?你能否举例说明如何在TypeScript文件中使用“大量有用”的插件? - Yuriy
9
编译器选项中的“目标”选项也可以是es5。所以你错了。 - Yuriy
4
她说得没错,你需要使用 ES6 模块才能进行树摇。 - webstackdev
3
我理解不了。我们的目标是将代码转译成ES5,但不包括模块。Babel可以实现这个目标。如果使用TypeScript配置也能达到相同的结果,为什么还需要使用Babel呢? - Yuriy
27
Babel 7现在可以使用babel-preset-typescript将TS转换为JS,而TS仅处理类型检查。https://github.com/Microsoft/TypeScript-Babel-Starter - Gaui
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接