Visual studio “打字脚本生成设置”;“保存时编译”;在VS 2015中不起作用。js文件仅在生成期间生成

Visual studio “打字脚本生成设置”;“保存时编译”;在VS 2015中不起作用。js文件仅在生成期间生成,visual-studio,typescript,visual-studio-2015,Visual Studio,Typescript,Visual Studio 2015,编辑 为什么这个问题非常痛苦?到目前为止,当我调试/测试我的Web应用程序时,我刚刚在VS IDE中编辑了.ts,保存,然后重新加载页面并测试了更改。现在我必须建造。但是,在VS IDE中运行调试会话时,未启用生成。所以现在我必须做一个完整的往返:edit.ts->save->stop debug->build->launch debug。同样,这是非常痛苦的。 结束编辑 我已取消选中/保存/检查了项目设置中TypeScript Build选项卡中的设置 相应的已生成并保存到my.csproj

编辑

为什么这个问题非常痛苦?到目前为止,当我调试/测试我的Web应用程序时,我刚刚在VS IDE中编辑了.ts,保存,然后重新加载页面并测试了更改。现在我必须建造。但是,在VS IDE中运行调试会话时,未启用生成。所以现在我必须做一个完整的往返:edit.ts->save->stop debug->build->launch debug。同样,这是非常痛苦的。 结束编辑

我已取消选中/保存/检查了项目设置中TypeScript Build选项卡中的设置

相应的
已生成并保存到my.csproj文件中

(注意,在不更改任何TypeScript生成设置的情况下,此
不存在(当使用以前使用VS 2013创建的现有项目时),并且生成默认值与IDE UI上的默认值不同,因此您会被误导。)

无论如何,在此更改/保存活动之后,我的.csproj文件将与IDE UI同步,如下所示:

<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
  <TypeScriptRemoveComments>True</TypeScriptRemoveComments>
  <TypeScriptTarget>ES5</TypeScriptTarget>
  <TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
  <TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny>
  <TypeScriptModuleKind>None</TypeScriptModuleKind>
  <TypeScriptOutFile />
  <TypeScriptOutDir />
  <TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations>
  <TypeScriptNoEmitOnError>True</TypeScriptNoEmitOnError>
  <TypeScriptSourceMap>True</TypeScriptSourceMap>
  <TypeScriptMapRoot />
  <TypeScriptSourceRoot />
</PropertyGroup>

真的
ES5
真的
假的
没有一个
假的
真的
真的
如图所示,保存时编译肯定已启用。仍然是.js文件仅在生成期间生成,而不是在保存.ts文件时生成

顺便说一句:关于TypeScript编译是VS 2015实现中的一项msbuild任务,有趣的是,这个保存设置上的编译是如何工作的

更多诊断:
有趣的是,如果我删除整个propertygroup,它实际上会在保存时编译。(用户界面保持不变,保存时不生成.map文件,仅在生成时生成。)

是否查找“工具”菜单我也有同样的问题,所以我:

  • 跟随citykid的
  • 自己创建了.js.map文件
  • 试过你的向导-它开始工作了,但是我
    • 比较了略有不同的PropertyGroup部分,因此我测试了您的配置和
  • 从citykid的Advice重新启用调试器
  • 。。。而且它仍然很有魅力


    这可能无关紧要,但我有:

    • Visual Studio Pro 14.0.23107.0
    • Microsoft ASP.NET和Web工具14.0.60814.0
    • MS的打字脚本VS 1.6.3.0(!)
    • 已安装Web Essentials 0.5.197
    • 已安装Web编译器1.8.270
    • 捆扎机和小型捆扎机未安装
    • 再竖琴9.2(?)

    要测试它,我建议:

  • 打开.js.map
  • 通过添加函数修改.ts-.js.map重新加载
  • 在IE中调试
  • 通过添加函数修改.ts-.js.map重新加载
  • 重新加载页面,它应该反映调试器和浏览器中的更改

  • 最后,我在我的
    tsconfig.json
    中添加了
    “compileOnSave”:true
    ,使它能够正常工作

    因此,您的tsconfig应该如下所示:

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

    在我将
    tsconfig
    文件中的
    compileOnSave
    移动到之前的
    compilerOptions
    时为我工作。

    对于Visual Studio 2019:

    步骤1工具
    选项

    在tsconfig.json中执行步骤2:

    {
    
    “编译保存”:是的,我在我的typescript项目中创建了一个单独的输出js文件。如果我构建,它仍然会为每个ts文件创建一个js文件。如果我在保存时编译,它会正确地输出到一个单独的js文件。奇怪的、有缺陷的、耗时的和令人沮丧的体验。有时ts文件会出现故障,如果我打开_references.ts并将其保存在该文件中,它会失败遵循引用顺序,js输出再次正确。我还没有找到将多个ts文件编译为单个js文件的“正确”方法,但是-如果有。我没有这样的选项…只有我?不,我没有这个选项/类别。(@2015 Update 1)Typescript的设置存在于
    Tools->Options->Text Editor->Typescript->Project
    下,这应该被标记为答案…Tools->Options->Text Editor->Typescript->Project是在保存时启用自动编译的地方。这仍然不起作用。现在我正在与VS 2017的问题作斗争。现在我有了这个问题自动编译选项,但是说“自动编译…这不是项目的一部分”。顺便说一句,这是我的问题。我在选项下面有
    compileOnSave
    ,不知道为什么它不起作用。谢谢。