更新

时间:2016-11-23 13:59:09

标签: visual-studio angular typescript

我已经开始将Angular 2集成到现有项目中。作为我的编辑器,我使用Visual Studio 2015社区版。我将我的Visual Studio更新到最新版本(更新3)以解决intellisense的问题并更新到最新的typescript插件版本(2.0.6)。在我更新之前,项目编译并运行正常。更新后,我从node_modules中的不同文件中收到多个错误。自更新以来,我没有更改任何代码。我在我的主tsconfig.json文件中排除了node_modules,但显然visual studio仍然试图在那里编译文件。

我的tsconfig.json看起来像这样:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": true
  },
  "types": [
    "core-js",
    "node"
  ], 
  "exclude": [
    "node_modules"
  ],
  "compileOnSave": true
}

我已使用打字稿版本号更新了我的csproj文件:

<TypeScriptToolsVersion>2.0.6</TypeScriptToolsVersion>

我的csproj文件中也有以下信息:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
    <TypeScriptTarget>Unknown</TypeScriptTarget>
    <TypeScriptJSXEmit>-1</TypeScriptJSXEmit>
    <TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
    <TypeScriptNoImplicitAny>True</TypeScriptNoImplicitAny>
    <TypeScriptModuleKind>CommonJS</TypeScriptModuleKind>
    <TypeScriptModuleResolution>node</TypeScriptModuleResolution>
    <TypeScriptRemoveComments>False</TypeScriptRemoveComments>
    <TypeScriptOutFile />
    <TypeScriptOutDir />
    <TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations>
    <TypeScriptNoEmitOnError>False</TypeScriptNoEmitOnError>
    <TypeScriptSourceMap>True</TypeScriptSourceMap>
    <TypeScriptMapRoot />
    <TypeScriptSourceRoot />
    <TypeScriptEmitDecoratorMetadata>True</TypeScriptEmitDecoratorMetadata>
    <TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
</PropertyGroup>

我已将visual studio中的build的输出更新为“Detailed”级别,看起来Visual Studio会尝试编译它在node_modules文件夹中找到的每个tsconfig文件,然后才会出现错误:

1>Target "CompileTypeScriptWithTSConfig" in file "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\TypeScript\Microsoft.TypeScript.targets" from project "C:\Projects\web\src\Web.csproj" (target "Compile" depends on it):
1>Task "VsTsc"
1>  C:\Program Files (x86)\Microsoft SDKs\TypeScript\2.0\tsc.exe --project "C:\Projects\web\src\FrontEnd\node_modules\browser-sync\node_modules\rx\ts\tsconfig.json" --listEmittedFiles
1>C:\Projects\web\src\Frontend\node_modules\browser-sync\node_modules\rx\ts\core\linq\observable\pairs.ts(28,5): error TS2322: Build:Type 'Observable<[string, {}]>' is not assignable to type 'Observable<[number, string]>'.
1>  Unknown output:   Type '[string, {}]' is not assignable to type '[number, string]'.
1>  Unknown output:     Type 'string' is not assignable to type 'number'.
1>C:\Projects\web\src\Frontend\node_modules\browser-sync\node_modules\rx\ts\core\linq\observable\pairs.ts(29,5): error TS2322: Build:Type 'Observable<[string, {}]>' is not assignable to type 'Observable<[number, string]>'.
1>  Unknown output:   Type '[string, {}]' is not assignable to type '[number, string]'.
1>  Unknown output:     Type 'string' is not assignable to type 'number'.
1>C:\Projects\web\src\Frontend\node_modules\browser-sync\node_modules\rx\ts\core\notification.ts(83,34): error TS7024: Build:Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.
1>  The command exited with code 2.

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

我知道这已经过时了,但是当我查找其他内容并因为它没有得到回答时我偶然发现了这一点 -

在Visual Studio中,您需要从VS Project中排除node_modules文件夹,而不是tsconfig文件。您应该无法在解决方案资源管理器中看到node_modules文件夹(除非您选择了视图所有文件图标)。