4

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

4

1 回答 1

6

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

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

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

1. Source Maps 和调试支持

包作者可能包含用于调试支持的源映射,它引用/映射.tssrc. 这样,这些原始资源也需要分发。例如authentication.component.js.map

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

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

2.源码包

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


1 RFC:源包#4092;另见2 , 3 (React 有偏见)

于 2019-08-17T08:37:03.827 回答