我已经开始研究一个项目,其中前端部分用Typescript编写并使用AngularJS 1.x.项目非常庞大 - 在92个C#/ ASP.NET MVC项目的解决方案中分散了大约500个打字稿文件 .
所有的Typescript代码都是使用内部的Typescript模块实现的:
/// <reference path="../folder1/file1.ts" />
/// <reference path="../folder2/file2.ts" />
module Product.Module1 {
export class Class1 {
// ...
}
}
最终目标是迁移到Angular 2.这可能是一个错误的假设,但迁移路径的第一步是将当前的Typescript代码库从内部模块重构为外部模块 .
正如您可能想象的那样,基于500个文件的Typescript应用程序中存在相当大的依赖图 . 试图将上面的示例转换为
class Class1 {
// ...
}
export { Class1 };
引发多米诺骨牌效应,依赖于此文件的内部模块不再显示 Class1
. 在依赖模块中执行 import { Class1 } from './samplefile'
会使情况变得更糟,因为现在内部模块依赖于它们而忽略了它们的依赖性 .
My questions are:
- 有没有一种方法可以逐步从内部模块迁移到外部模块?
- 也许可以跳过对外部模块的重构?然后我看不出Angular 1.x和基于Angular 2.x的应用程序部分如何共享相同的代码/类型 .
任何想法都表示赞赏