VSCode配置Angular开发环境必须协同三要素:全局安装@angular/cli、匹配@angular/core大版本的Angular Language Service插件、正确配置tsconfig.json(含plugins、composite、baseUrl等);缺一即导致*ngIf不提示、@Input跳转失败或断点不命中。

VSCode 本身不提供 Angular 支持,必须靠三类东西协同工作:全局安装的 @angular/cli、匹配版本的官方语言服务插件、以及项目级 TypeScript 配置。缺任何一环,*ngIf 不提示、@Input() 跳转失败、HTML 模板断点不命中,都是必然结果。
Angular Language Service 插件必须装,且版本要对得上
它不是“有就行”,而是和项目中 @angular/core 的大版本强绑定。比如项目用的是 @angular/core@17.3.0,插件就得选 v17.x 分支——装 v16 或 v18 的,模板里连 ngFor 都标红,但运行完全正常,极难排查。
- 装完必须重启 VSCode(不是重载窗口),否则服务不激活
- 检查
tsconfig.json是否含"plugins": [{ "name": "@angular/language-service" }],漏了这行等于没装 - 补全失效时,先跑
npm ls typescript,确认node_modules/typescript版本 ≥ 5.2(Angular 17 要求) - 右下角点击 .html 文件的语言模式(显示 “HTML”),手动设为
Angular HTML,否则指令根本不会被解析
CLI 必须全局安装,VSCode 终端才能识别 ng
ng serve、ng g c user-list 这些命令不是 VSCode 功能,全靠 @angular/cli 驱动。插件再全,Command 'ng' not found 就说明环境根本没搭起来。
- 用
npm install -g @angular/cli(pnpm用户改用pnpm add -g @angular/cli) - 在系统终端(非 VSCode)里执行
ng version确认成功;若失败,检查npm config get prefix对应路径是否在$PATH中 - VSCode 集成终端可能不继承 shell 的 PATH,开启设置
terminal.integrated.inheritEnv或直接用code .从项目目录启动 - Windows 上 PowerShell 执行策略常拦截 npm 全局 bin,换 Windows Terminal 或管理员权限重装
调试必须配 launch.json + 手动 ng serve
VSCode 的调试器不会自动拉起 dev server,preLaunchTask 自动执行 ng serve 看似省事,实则容易导致热更新卡死、端口被占、断点永远不触发。
- 按
Ctrl+Shift+P输入Debug: Open launch.json,选Chrome环境生成配置 -
"url"必须是"http://localhost:4200/"(结尾斜杠不能少) -
"webRoot"必须是"${workspaceFolder}/src",写成${workspaceFolder}或./src都会导致断点偏移 - 先在终端手动运行
ng serve,等看到Compiled successfully后,再点 VSCode 的 ▶️ 启动调试
最容易被忽略的是 tsconfig.json 里的 "composite": true 和 "baseUrl": "src" ——它们不报错,但一旦漏掉,路径跳转就失效,你点进 @core/http 会直接跳到 any 类型定义里出不来。


















