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

nfl*_*aig 3 node-modules typescript loopbackjs loopback4

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

for*_*d04 5

从可靠的来源开始:TypeScript 发布指南仅考虑将声明文件与编译.js文件捆绑在一起,不包含.ts文件。

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

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

1. Source Maps 和调试支持

该软件包作者可能包括源地图调试支持,其中引用/映射到原来的.ts文件中src。这样,那些原始来源也需要分发。例如authentication.component.js.map

"sources": ["../src/authentication.component.ts"],
Run Code Online (Sandbox Code Playgroud)

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

2.源码包

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


1 RFC:源包#4092;另见2 , 3(反应偏向)

  • 我不确定自发布此答案以来该页面发生了多少变化,但该页面仅指发布声明文件。一般来说,它并没有真正为发布库提供指导,因此我不会将其称为“TypeScript 发布指南”。 (2认同)