【问题标题】:TypeScript compilation outside of project created with Visual Studio在使用 Visual Studio 创建的项目之外进行 TypeScript 编译
【发布时间】:2023-03-11 06:15:01
【问题描述】:

我继承了一个使用 TypeScript 构建的大型 LOB 应用程序。该项目在任何文件中都没有引用路径,因为它是使用 Visual Studio 2013 设置和创建的——Visual Studio 似乎有一些魔力,它可以自己获取全局 TypeMaps。 嘲笑

当前的构建过程是使用 Grunt 将已编译的 .js 文件(在 Visual Studio 中保存时生成)复制到构建目录 - 而不是实际编译它们。

(为了进一步强化这一点,Grunt 编译任何 TypeScript)。

此构建过程现在不再可接受,因为我正在通过持续集成过程将应用程序移动到构建,使用 Team City 和命令行 tsc.exe/Grunt - 所以当检出存储库时,显然没有生成.js 文件。

在当前状态下,尝试使用命令行 tsc.exe/Grunt 编译 TypeScript 文件时出现大量编译错误,我认为是因为应用程序未使用引用路径?

这是否意味着我需要将所有相关的引用路径添加到项目中的每个文件?

有没有人对这种设置有任何经验并且可以指出正确的方向来管理这些参考路径和构建过程?

谢谢

【问题讨论】:

    标签: visual-studio visual-studio-2013 gruntjs typescript


    【解决方案1】:

    在当前状态下,尝试使用命令行 tsc.exe/Grunt 编译 TypeScript 文件时会出现大量编译错误,我认为是因为应用程序未使用引用路径

    没有。您应该使用tsconfig.json,它将创建编译上下文

    更多

    https://basarat.gitbooks.io/typescript/content/docs/project/project.html

    【讨论】:

    • 感谢您的回复,但是在向文件添加引用路径时,命名空间和“找不到模块”错误消失(对于被引用的文件)。 TypeScript 1.4 也在使用中,这意味着不支持 tsconfig 吗?
    • Also TypeScript 1.4 is in use which means tsconfig's aren't supported right 是的。但是 TypeScript 1.4 也不是。不使语言保持最新可能是一个坏主意。对于上下文回想 C# ArrayListList<T>
    • 尽管我同意你的看法,但这个项目目前还不能真正进入更新 TypeScript 编译器的兔子洞 [重大更改] - 它是一个大型 LOB 应用程序和优先级是构建过程。
    • 您可以将最新的编译器与旧代码库一起使用,大多数情况下就好了
    • 好的,我将尝试更新 TS 编译器。但这并不能解释添加引用路径时命名空间问题如何消失?这不是 grunt-ts 等工具编译 TypeScript 文件的方式吗?
    【解决方案2】:

    已找到解决方案。

    在 grunt-ts 任务中使用 Visual Studio 配置选项,我已将任务设置为专门使用项目 .csprog 和 TypeScript 1.4 编译器(我们被锁定在此编译器中)。

    我对 grunt-ts 任务的配置:

        ts: {
            default: {
                vs: "Consortium.Client.Web.csproj",
                options: {
                    compiler: "1.4/tsc"
                }
            }
        }
    

    我希望借此机会,这对其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-13
      • 1970-01-01
      • 2016-09-12
      • 1970-01-01
      相关资源
      最近更新 更多