VSCode运行Dart/Flutter需正确配置SDK路径、全局启用Dart插件、打开含pubspec.yaml的项目根目录;macOS/Linux需在shell配置文件中导出PATH并source,Windows需系统环境变量并重启VSCode;launch.json中type须按项目类型设为dart或flutter。

VSCode 本身不运行 Dart 代码,它只调用你本地装好的 dart 或 flutter 命令;只要终端里 dart --version 能输出版本号,且 VSCode 插件能读到这个路径,再配上合规的项目结构,就能跑起来——卡住的地方几乎全在路径、插件启用状态和项目根目录这三处。
终端能跑 dart --version,但 VSCode 状态栏不显示 Dart SDK 版本
这不是插件没装,而是插件根本没继承到 shell 的环境变量。VSCode 启动时只读取你当前 shell 的 PATH,不会查系统全局 PATH。
- macOS/Linux:检查
~/.zshrc(或~/.bash_profile)是否写了export PATH="/path/to/dart-sdk/bin:$PATH",然后执行source ~/.zshrc - Windows:把
dart-sdk\bin加进「系统属性 → 高级 → 环境变量」里的系统 PATH,**必须重启 VSCode(不是重载窗口)** - 验证方式:在 VSCode 内置终端里运行
which dart(macOS/Linux)或where dart(Windows),必须有输出 - 仍不行?打开设置(
Cmd + ,),搜dart.sdkPath,手动填入完整bin目录路径,例如/usr/local/share/dart-sdk/bin—— 注意是bin目录,不是dart-sdk根目录
右键 main.dart 没“Run Dart Program”,或点 F5 报 “No debug adapter found”
说明 Dart 插件的语言服务压根没启动,常见于插件未全局启用、或项目结构不被识别。
- 确认只装了官方插件:
Dart(发布者Dart-Code.dart-code),别装其他名字相似的 Dart 扩展 - 插件必须“全局启用”:命令面板(
Ctrl+Shift+P)→Extensions: Show Installed Extensions→ 找到 Dart → 右键选Install for all users(Windows)或Install globally(macOS/Linux) - 必须用 VSCode **打开整个文件夹**(含
pubspec.yaml的那一级),不能只打开单个.dart文件 -
pubspec.yaml必须在项目根目录,缩进只能用空格,最简合法内容至少含name:和version:,例如:
name: my_cli_tool version: 0.1.0 environment: sdk: '>=3.0.0 <4.0.0'
右下角状态栏出现 Dart: Ready 才算真正就绪。
launch.json 中 type 该设 "dart" 还是 "flutter"
取决于你运行的是什么程序,设错会导致断点不命中、热重载失效、甚至直接报错。
- 纯 Dart CLI 脚本(无
flutter:依赖、无 UI):必须用"type": "dart","program"指向bin/main.dart或lib/main.dart(按实际路径) - Flutter 项目(含
pubspec.yaml里声明flutter:):必须用"type": "flutter",且"request": "launch";设成"dart"会跳过 Flutter 引擎初始化,控制台卡在Launching lib/main.dart on Chrome - 如果
pubspec.yaml里声明了executables:,"program"可直接写命令名,例如"program": "myapp",插件会自动映射到bin/myapp.dart
F5 启动后卡在 “Waiting for connection from debug service on Chrome”
这是 Flutter Web 调试最典型的假死现象,本质是开发服务器没起来,或浏览器没连上调试器,和插件配置关系不大。
- 先关掉所有 Chrome 实例(包括后台进程),再按 F5 —— Flutter Web 调试器对 Chrome 实例独占性很强
- 确保已安装 Chrome 的
Dart Debug Extension,并允许它访问file://URL - 检查
launch.json中"webBrowser"字段是否匹配你实际用的浏览器;设"edge"却没装对应扩展,也会卡住 - 终端手动执行
flutter run -d chrome --web-hostname localhost --web-port 8080,如果手动能跑,说明 VSCode 调试配置或缓存异常,可临时禁用dart.previewLsp(设为false)
最容易被忽略的点:VSCode 不会自动探测 SDK 路径,哪怕你装了 Flutter,也得手动填 dart.flutterSdkPath 指向 Flutter SDK 根目录(不含 /bin),否则设备列表为空、热重载按钮灰色、F5 按下没反应——这个路径错一点,整个调试链就断了。


















