我想使用Typescript然后使用Closure Compile(高级编译)来定位ES5并缩小输出。
我是否必须使用tsickle代替tsc?它缺乏对tsc所有选项的支持,并且雄心勃勃,因为它想要将Typescript类型转换为Closure类型(它们不是100%兼容)。我真的不需要使用Closure类型;我只需要缩小/属性重命名。
我可以使用tsc将Typescript编译为ES6模块并使用Closure Compiler来缩小这些(没有类型检查或基于类型的优化)吗?
奖励:如果我想使用Closure Library,这个答案会改变吗?
答案 0 :(得分:8)
从技术上讲,您可以从tsc
获取ES6输出并立即将其传递给Closure Compiler,因为后者被指定接受JS作为输入。我们已经在许多地方这样做了,例如。使用闭包编译器编译的Angular应用程序采用rxjs库分发并将其包含在闭包中。见https://github.com/angular/closure-demo
在实践中,我们发现在Closure看到它之前使用像tsickle这样的东西来改造JS的一些原因。
export *
- tsickle将其重写为export {each, visible, symbol}
我们目前的计划是将tsickle分解为多个TS 2.3发射变换,然后我们可以更清楚地知道哪些变换实际上需要在编译器中启用。
添加类型是可选的。如果您关闭tsickle的键入模式,我们只需打印{?}
代替类型。但是,如果你想从闭包JS代码中使用TypeScript的输出,那么你需要闭包类型检查器来知道类型。
如果你是一个新的构建工具的游戏,我们将在某些时候在https://github.com/bazelbuild/rules_typescript中建立tszel到Bazel工具链。在此期间,您可以为Tsickle的main提交功能请求,以支持更多的命令行标志。 (但我认为Lucidchart已经维持了Tsickle的分支?)
答案 1 :(得分:2)
我知道我参加聚会很晚,但是关于Closure库: 现在有一个active fork版的Closure库具有最新版本