likes
comments
collection
share

放弃tsc作为typescript项目的编译工具

作者站长头像
站长
· 阅读数 48

项目很小,实现一个通用功能类库,尝试使用typescript编写。预期输出结果同时支持CJS, ESM, <script> reference三种方式的使用(使用umd模块输出),原本是想用typescript官方的tsc作为编译工具,最终放弃。

在tsconfig.js中配置了compilerOptions.module = "umd";

查看编译产物,发现编译产物中,没有全局变量的添加,这样对通过<script src="path/to/file.js">引用的方式来说,根本无法使用编译产物。

注:全局变量的添加形如 global.exportName = factory()

拿一个rollup编译的umd产物来看,如下图放弃tsc作为typescript项目的编译工具

对比一下tsc的umd产物放弃tsc作为typescript项目的编译工具

tsc的umd编译产物缺少了给全局命名空间挂载变量的操作。

上面这个问题在2016年就被提了issuehttps://github.com/microsoft/...现在是2022年6月,issue依然是open状态,这个问题无解。

至此,已经放弃了用tsc作为项目编译器的想法,拜拜了tsc。