如何在Webpack中使用React将Typescript定向到ES5?

问题描述:

我们有一个用Typescript编写的React网络应用程序,它工作正常,并且在tsconfig.json文件中以ES6为目标。如何在Webpack中使用React将Typescript定向到ES5?

现在我们想在Uglifyjs编译部署到生产环境后将其缩小。这是因为Uglify只支持ES5(甚至是#harmony分支,我已经试过了)。

所以我需要webpack输出为ES5。但是当我在我们的tsconfig文件中设置"target": "es5"时,webpack编译失败,说:Unexpected token (164:41) You may need an appropriate loader to handle this file type.

我们如何使用React将Typescript中的ES5定位到它的工作?


附错误的截图:

enter image description here

+0

你有JSX吗?没有看到这条线就很难说具体的东西。 –

+0

什么是意外标记? –

+0

我附上了错误的行。但我认为这不重要。一切都在ES6编译。那么为什么它会在ES5中失败呢? 'target'是我们要去**的版本,而不是来自**的源代码版本。没有? – Richard

答案是,你不能。

巴别可以将ES7转换为ES6。但它can't transpile ES6 to ES5,因为它使用了一个polyfill(在浏览器中加载的.js库)。

因此,由于无法从源代码获取ES5,因此无法使用Uglify。

你必须依靠单独的gzip(which is a substantial size decrease)。