在我们的AngularJS应用程序中,我们目前有大量(400多个)文件,这些文件通过<script>
标签被包含。这些文件的顺序如下:
我们想使用模块捆绑器和TypeScript寻求更好的方法。新文件已经用TypeScript编写,但是没有使用import
/ export
。为了使事情变得容易,我们可以将每个JavaScript文件转换为TypeScript文件,并在可行的时间内修复所产生的错误。
但是,在执行此操作之前,我们希望有一个可行的策略来逐步使用import
/ export
。我在想类似不时重写一个模块的事情,从依赖树中的模块开始。
但是我无法实现这一目标,但是我很确定其他人以前必须解决此问题。
答案 0 :(得分:1)
一旦确定了模块捆绑器,您将需要了解其功能,用于(1)允许页面上的其他JavaScript访问捆绑中定义的内容,以及(2)允许捆绑访问其他捆绑器中定义的内容页面上的JavaScript。 (如果能够按照严格的依赖关系顺序迁移,则可能永远不需要#2。)例如,对于Webpack,#1将是library*
output options,而#2将是externals。然后,只需将代码一点一点地移入模块中,并根据需要调整配置,以使代码的每个部分都可以从代码的另一部分访问其所需的内容。由于Webpack仅支持单个库导出模块,因此在过渡期间,您可能必须维护一个虚拟模块,该模块仅重新导出需要从捆绑包外部的代码访问的所有模块。这有点单调乏味,并且代表了一次迁移所有内容时无需做的额外工作,但是您可以决定为逐步迁移而付出这笔费用是值得的。
如果从非模块TypeScript文件中的TypeScript模块文件获取类型信息时遇到问题,请参见this answer,以获取解决方法。