You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2017中Angular6+ASP.NET Core2编译报错求助

解决ASP.NET Core 2 + Angular 6应用中output_ast.d.ts的TypeScript错误

这个错误主要是因为Visual Studio 2017默认会扫描并尝试编译node_modules目录下的第三方TypeScript文件,加上它使用的TypeScript版本可能和项目依赖版本不匹配,最终引发了const enum的编译兼容性问题。下面是几个针对性的解决步骤:

1. 让Visual Studio使用项目本地的TypeScript版本

VS2017自带的TypeScript版本可能低于你项目中指定的~2.7.2,这会导致对const enum语法的处理出现偏差:

  • 打开Visual Studio,点击顶部菜单栏的 工具 > 选项
  • 依次展开 文本编辑器 > JavaScript/TypeScript > IntelliSense
  • 在“使用TypeScript版本”下拉菜单中,选择 从当前项目的node_modules文件夹获取,或者直接指定项目内node_modules/typescript/bin/tsc.exe的路径
  • 重启VS后重新构建项目

2. 配置项目排除node_modules目录的编译

VS默认会处理项目中所有.ts文件,但node_modules里的第三方代码完全不需要它来编译。修改项目的.csproj文件来排除这些目录:

<ItemGroup>
  <Content Remove="ClientApp\node_modules\**" />
  <None Include="ClientApp\node_modules\**" />
</ItemGroup>

添加这段配置后,VS会忽略node_modules下的所有文件,把前端编译工作完全交给Angular CLI处理。

3. 调整tsconfig.json的编译选项

在ClientApp目录下的tsconfig.json中,给compilerOptions添加相关配置:

{
  "compilerOptions": {
    "target": "es2017",
    "preserveConstEnums": true,
    // 保留你原有的其他配置项...
  }
}

preserveConstEnums会让TypeScript保留const enum的原始定义,避免编译时出现初始化表达式的校验错误。

4. 清理缓存并重新安装依赖

依赖缓存也可能导致版本不兼容问题,执行以下操作:

  • 删除ClientApp目录下的node_modules文件夹和package-lock.json文件
  • 打开命令行进入ClientApp目录,运行npm install重新安装所有依赖
  • 重新构建整个应用

这些步骤应该能彻底解决你遇到的const enum初始化错误。

内容的提问来源于stack exchange,提问作者Jakubbb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:10:47