Visual Studio 2017 TypeScript编译错误

3

我想把一个ASP.NET Core应用程序转换为VS 2017,但不幸的是,我无法编译该网站,因为我不断收到TypeScript错误。由于我使用Webpack进行实际的构建和打包,因此我希望VS根本不要触及我的TypeScript。

该网站中有一个Angular 2应用程序,包括一些测试。以下是示例错误:

错误TS2665:构建:增强中的无效模块名称。 模块“angular-mocks / ngMock”解析为未类型化的模块,位于“D:/ myapp / source / MySite / node_modules / angular-mocks / ngMock.js”,无法增强。 MySite D:\ myapp \ source \ MySite \ node_modules \ @ types \ angularjs \ angular-mocks.d.ts 8

我的app/tsconfig.json文件如下:

{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "experimentalDecorators": false,
    "sourceMap": false,
    "module": "commonjs",
    "moduleResolution": "node",
    "skipLibCheck": true,
    "skipDefaultLibCheck": true,
    "target": "es5",
    "typeRoots": [
      "../node_modules/@types"
    ],

    "lib": [
      "es2016",
      "dom"
    ]
  },
    "exclude": [
    "../node_modules",
    "../wwwroot"
  ],
  "compileOnSave": false
}

有没有办法告诉VS在构建时完全忽略我的TypeScript?我不知道为什么它会查看这些文件。

你的Visual Studio可能正在使用旧版本的TypeScript编译器。请确认它是否确实正在使用最新的TypeScript。 - Rosdi Kasim
我觉得对于2017年,我没有选择,是吗?我无法安装更新的版本。据我所知,它使用的是2.1版本,这是2017年附带的。 - Brian Vallelunga
我的 tsconfig.json 文件位置比你高一级... 它有这个 "baseUrl": "src",,而且我甚至没有 "exclude" 设置。 - Rosdi Kasim
不确定这是否有帮助,或许值得一试:https://developercommunity.visualstudio.com/answers/11741/view.html - Rosdi Kasim
@RosdiKasim 那个链接对我来说是404错误。 - Brian Vallelunga
尝试使用Visual Studio打开一个全新的Angular 4项目,看看是否遇到相同的问题,以便确定其是否是特定于项目的。如果不是,请尝试以下方法:https://dev59.com/qmQm5IYBdhLWcg3w-S2Y#19460071 但您将需要重新配置您的VS。 - Rosdi Kasim
1个回答

9
如果你不想让VS 2017为你编译TypeScript,可以参考以下来自TypeScript Handbook的文档,了解如何在MSBuild中禁用编译。

TypeScriptCompileBlocked

如果你使用其他构建工具(如gulp,grunt等)来构建你的项目,并借助VS进行开发和调试体验,请在你的项目中设置<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>。这应该能提供所有编辑支持,但F5时不会进行构建。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接