是否建议发布 TypeScript 节点模块的源文件?

Is it recommended to publish source files for TypeScript node modules?

我注意到一些 TypeScript 节点模块(例如 loopback-next/packages)使用节点模块发布它们的源文件。这是否有特殊原因,或者只是不必要地增加了模块的大小?

从可靠的来源开始:TypeScript Publishing guide 只考虑将声明文件与编译的 .js 文件捆绑在一起,不包括 .ts 文件。

作为没有贡献者,我可以想象包 @loopback/authentication 的两个原因:

  1. Source Maps 和调试支持(最有可能)
  2. 用作某种源码包1

1。源映射和调试支持

软件包作者可能包含用于调试支持的源映射,reference/map 到 src 中的原始 .ts 文件。这样,那些原始资源也需要分发。例如。 authentication.component.js.map:

"sources": ["../src/authentication.component.ts"],

旁注:源地图“规范”还将提供一个 sourcesContent 字段来支持自包含的源地图。

2。源码包

作为预编译文件的替代方案,该包提供了关于构建目标的不固执己见。因此,客户端应用程序项目可以利用其捆绑器并以特定的目标格式本身转译库。例如,如果您支持 a) Electron 和 b) 多种浏览器,则不需要为 Electron 渲染器构建额外的 polyfill 和转换。


1 RFC: Source Packages #4092 ; see also 2, 3(反应偏向)