由于 TypeScript 错误而无法构建解决方案,但 noEmitOnError 为 false

问题描述 投票:0回答:1

我正在使用 ReSharper 2016.2 在 Visual Studio 2015 中使用 React 和 TypeScript 开发 ASP.NET 5 MVC 6 Web 应用程序。我使用的

tsconfig.json
看起来像这样:

{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": false,
    "removeComments": false,
    "experimentalDecorators": true,
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "target": "es5",
    "jsx": "react"

  },
    "exclude": [
        "node_modules",
        "wwwroot",
        "typings/index.d.ts",
        "typings/index",
        "jspm_packages"
    ],
    "compileOnSave": true
}

如您所见,

noEmitOnError
是错误的。但是,安装 Update 3 后,如果存在任何键入错误,Visual Studio 将不再允许我构建解决方案。每个 TS 错误都会在错误列表中报告两次:

第一个错误(没有错误代码)会阻止解决方案的构建。

我已经尝试过:

  1. 重新安装/卸载 VS 的 TypeScript 工具(不会改变任何内容)
  2. 重新创建
    tsconfig.json
    文件。
  3. 切换到没有
    tsconfig.json
    的模式并确保启用错误发出。
  4. 禁用/启用 ReSharper
  5. 卸载各种其他扩展
  6. 创建新项目和解决方案。所有项目都会出现该错误。

我发现该问题的唯一解决方案是从

.csproj
文件中删除以下行:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />

执行此操作后,TypeScript 工具仍然可以正常工作(存在一些小问题),并且以

Build:
开头的错误消失。

问题是,对

.ts
文件进行一些操作后,Visual Studio 会发出以下有用的消息:

并再次将该行添加到

.csproj
文件中。起初一切都很好,但是当我重新启动 Visual Studio 后,
Build:
错误再次出现。

编辑:更好的解决方法

好的,更好的解决方法是用以下内容替换坏线:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="False And Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />

这“欺骗”VS 相信该行已经存在,因此不会再次添加它。但是,仍然存在问题,例如仅在打开包含错误的文件时才会出现错误,而不是在构建时出现。

c# typescript visual-studio-2015 tsconfig
1个回答
0
投票

进入当前用户目录

启动/运行 %USERPROFILE% 或 C:\Users\\

找到名为 node_modules

的文件夹

删除它

重建项目

© www.soinside.com 2019 - 2024. All rights reserved.