能否将TypeScript编译成压缩代码?

126

是否有选项将TypeScript代码的输出编译为缩小版?还是我们需要在单独的过程中处理它?混淆会影响答案吗?

3个回答

97
TypeScript编译器不支持生成压缩或混淆代码的功能。您需要使用另一个工具来处理编译器输出的JavaScript代码。
有一个开放的功能请求:microsoft/TypeScript#8

1
你可以使用YUI Compressor、JSMin或Closure Compiler来压缩JS代码。 - niutech
1
这就是我最终所做的。我添加了一个后编译命令,将app.js文件传递给YUI压缩器,以便在编译时实现缩小。 - LordZardeck
13
Web Essentials可以自动从你的TypeScript文件中完成这项任务。 - joeriks
1
按照 @joeriks 的说法,下载WebEssentials2012,它可以自动创建你的文件的min.js版本。 - JasonS
29
这很糟糕。如果TypeScript编译器提供了全部基础设施,使用适当的.map生成压缩代码似乎非常合理。在VS的情况下,这甚至可以成为一个完全集成的解决方案,甚至是一个配置设置。 - g.pickardou

29

我是 typescript-closure-compiler 的作者。
基本上,它是一个能够生成与 Google Closure Compiler 兼容文件的工具,Closure Compiler 可能是目前最好的压缩/优化/混淆 工具。
我还创建了一个在线演示平台,可以展示出生成的输出内容。
您可以查看一个使用该工具的 项目示例
这个压缩过程是使用 gulp 完成的。


3
游乐场坏了。 - devnull
2
最新版本支持 TypeScript 1.8.1,因此我认为这已经过时了。 - Vít Zadina
2
不再维护,自2017年起。 - Mohamed Allal

6

压缩代码的行业标准是 esbuild。(链接

在编译成 JavaScript 后调用 esbuild

esbuild your_file.js --minify --outfile=your_file.min.js

一个简单的例子:

tsc --strict --lib DOM,DOM.Iterable,ES6 --target ES6 your_file.ts && esbuild your_file.js --minify --outfile=your_file.min.js

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