项目很小,实现一个通用功能类库,尝试使用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。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。