【问题标题】:Visual Studio/Angular 2 - node_modules folder not excluded after updateVisual Studio/Angular 2 - 更新后未排除 node_modules 文件夹
【发布时间】:2017-04-07 13:56:30
【问题描述】:

我已经开始将 Angular 2 集成到现有项目中。作为我的编辑器,我使用 Visual Studio 2015 社区版。我将我的 Visual Studio 更新到最新版本(更新 3)以解决智能感知问题并更新到最新的打字稿插件版本(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
}

我已经用 typescript 版本号更新了我的 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 中构建的输出更新为“详细”级别,看起来 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.

任何帮助将不胜感激

【问题讨论】:

  • 由于错误都发生在节点模块中,您是否尝试过只运行和npm安装?

标签: visual-studio angular typescript


【解决方案1】:

我知道这是旧的,但我在查找其他内容时遇到了这个问题,因为它没有得到回答 -

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 2021-03-21
    • 2017-07-31
    • 2019-01-15
    • 1970-01-01
    • 2016-11-01
    相关资源
    最近更新 更多