【问题标题】:Typescript compile on build not working打字稿在构建时编译不起作用
【发布时间】:2016-08-19 14:06:40
【问题描述】:

我有带有一些打字稿文件的 VS2015 和 ASP.NET 5 RC1 项目。文件位于 scripts 文件夹中,而 tsconfig 也在此文件夹中。当我保存打字稿文件时,会生成 js 文件,一切正常。但是构建时不会生成js文件。

我也安装了 VS2013 和一些使用 typescript 的旧项目,所以可能有一些问题,因为我有很多 TypeScript 版本和很多 VS 版本。

如何在构建期间对编译 typescript 进行故障排除?构建日志没有提到打字稿。复选框“在构建时编译 TypeScript”是启用项目设置。在旧的 ASP.NET 项目中,TypeScript 是通过 csproj 中的自定义目标启用的,并且很容易排除故障。但在 xproj 中,我看不到任何与打字稿相关的东西。

【问题讨论】:

  • 你有目标导入到 Microsoft.Typescript.targets 吗?
  • @mohamedhegazy 不,只导入 Microsoft.DNX.Props 和 Microsoft.DNX.targets
  • 你能把构建日志分享给/verbosity:diagnostic
  • @mohamedhegazy 这是 2Mb 的 msbuild 日志:drive.google.com/file/d/0B2pS8f3oahxBd29wLTBRY1ZBbVk/view

标签: asp.net typescript asp.net-mvc-5 visual-studio-2015


【解决方案1】:

我目前的工作解决方案是添加手动调用 TypeScript 编译器的 postbuild 事件。

project.json:

"scripts": {
    "postbuild": ["tsc -p scripts\\tsconfig.json"]
}

(假设您的 PATH 变量中有 tsc)

【讨论】:

    【解决方案2】:

    确保将其添加到您的解决方案文件中 "Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')"

    【讨论】:

    • 您的意思是项目文件,而不是解决方案文件?我在 xproj 文件中没有这一行,但添加它不会改变任何内容。 ASP.NET 5 是否需要此导入?我认为只有旧版本的 ASP.NET 才需要它。
    • sln 文件。这些是 VS-15 的内置扩展,但请确保它们没有被修改。要编辑 sln 文件 - 转到解决方案资源管理器 -> 卸载项目 -> 编辑 -> 重新加载
    • sln 中只有项目的链接。我应该在哪里添加导入? pastebin.com/ZBg1TdEA
    • 可以在项目标签正下方添加
    • 将我的导入更改为此没有任何作用。
    【解决方案3】:

    我遇到了完全相同的问题。当我编辑 tsconfig 并在 tsconfig 中放置 compileOnSave BEFORE compilerOptions 时为我工作:

    {
        "compileOnSave": true
        "compilerOptions": {
             ....
        },
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      • 2021-08-21
      • 1970-01-01
      • 2017-06-26
      • 2018-02-18
      相关资源
      最近更新 更多