我的项目很小,实现一个通用性能类库,尝试应用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的umd产物
tsc的umd编译产物短少了给全局命名空间挂载变量的操作。
下面这个问题在2016年就被提了issue
https://github.com/microsoft/...
当初是2022年6月,issue仍然是open状态,这个问题无解。
至此,曾经放弃了用tsc作为我的项目编译器的想法,拜拜了tsc。