【发布时间】:2020-02-13 13:56:35
【问题描述】:
假设我有一个 NX monorepo,其中包含 2 个应用程序:Angular 和 Nest。由于它是一个 monorepo,它有一个带有依赖项的通用 package.json 文件,用于客户端和服务器。问题很简单:我的 Angular 包是否会包含 Nest 依赖项,反之亦然?换句话说,是否存在某种 treeshaking,以便从最终包中删除未使用的代码?
【问题讨论】:
假设我有一个 NX monorepo,其中包含 2 个应用程序:Angular 和 Nest。由于它是一个 monorepo,它有一个带有依赖项的通用 package.json 文件,用于客户端和服务器。问题很简单:我的 Angular 包是否会包含 Nest 依赖项,反之亦然?换句话说,是否存在某种 treeshaking,以便从最终包中删除未使用的代码?
【问题讨论】:
如果您使用内置的 ng 功能,所有这些都处理 webpacking 和 tree-shaking 您的代码,因此它不会与您的 Nest 的角度依赖关系交叉,除非需要它们。这适用于ng build,尤其适用于--prod 标志。
注意:webpacking 服务器有点奇怪,因为它确实意味着你的整个服务器从一个文件运行,这在节点世界中有点不同,但它仍然是可行的。
【讨论】:
ng build api 或任何你的巢项目被称为,那么它不应该发生。如果您使用 typescript 手动构建服务器,那么可以,但通常服务器 bubnle 大小并不那么在意