我们可以将 dart 代码转换为多个 JS 文件吗?

Can we transpile dart code to multiple JS files?

假设开发人员创建了一个针对客户端的 general-purpose Dart 库,其中包含大量 class 和功能定义,其中只有一小部分是预期的用于单个网页。

作为一个 Javascript 示例,Mathjax 提供的文件包含大量与在浏览器中显示数学表达式相关的功能,但任何给定的显示数学表达式的网页可能只使用非常少量的功能Mathjax 定义的功能。因此,页面作者倾向于做的是 link 他们创建的每个页面到大型 general-purpose JS 文件(例如页面 header 中)的单个副本,然后编写自己的,通常相对较小的 JS 文件,定义页面特定的行为。因此,他们可能有数百页,每个 link 到一个 general-purpose JS 文件。

然而,当我们将 Dart 转换为 JS 时,输出是一个单一的大型 JS 文件,该文件似乎包含任何依赖项的功能以及特定页面所需的行为。如果我们有数百个页面,每个页面 linked 到它们自己的 dart2js 生成的 JS 文件,我们似乎在代码中有大量冗余。此外,如果我们需要对 general-purpose 库进行更改,似乎我们必须为每个页面重新生成 JS。 (或者也许我完全误解了事情。)

我的问题是:是否可以将Dart代码转译为多个JS文件?例如,给定页面的 Dart 代码可能会被转换成一个包含依赖功能的 JS 文件(许多页面可以 link 到)和一个定义页面特定行为的小 JS 文件?

听起来您应该重新考虑您的网站作为单页应用程序。然后,您得到一个可以处理 any 页面的有效负载,但仍然经过 tree-shaking 以仅具有您需要的 all of他们。