VSCode 运行 Dart 依赖系统已安装的 Dart/Flutter SDK 且 PATH 配置正确;插件需全局启用、dart 命令须终端可用,纯 Dart 脚本调试需 launch.json 中 type 设为 "dart" 并指定 program 路径,Mac/Linux 用户应通过终端启动 VSCode 以继承 shell 环境。

VSCode 本身不运行 Dart,它靠插件调用系统里已安装的 dart 或 flutter 命令来执行;没配好 PATH 或没装 SDK,点运行只会报错“command not found”——这不是 VSCode 的问题,是命令链断在了最底层。
为什么按 F5 运行 Dart 文件却提示 “No debug adapter found for dart”
这个错误说明 VSCode 的 Dart 插件压根没启动语言服务,常见原因不是插件没装,而是它找不到 dart 可执行文件。
-
dart命令必须全局可用:终端里运行dart --version要有输出;如果失败,VSCode 内置终端和调试器一样会静默报错 - Dart SDK 通常随 Flutter SDK 一起提供,但 VSCode 不自动识别——即使你装了 Flutter,也得让插件知道 Dart 在哪
- 插件只认用户级启用的 Dart 扩展:打开命令面板(
Ctrl+Shift+P),搜Extensions: Show Installed Extensions,找到Dart(发布者是Dart Code),右键选Install for all users(Windows)或Install globally(macOS/Linux) - 重启 VSCode 后,打开一个
.dart文件,右下角状态栏应显示类似Dart SDK 3.4.3;不显示就说明插件没活过来
如何在 VSCode 中直接运行单个 .dart 文件(不走 Flutter 项目)
纯 Dart 脚本不需要 pubspec.yaml,但 VSCode 默认只对 Flutter 项目启用完整调试支持;想跑独立脚本,得手动配置 launch.json 或用终端。
- 推荐做法:在 VSCode 内置终端中直接运行
dart run path/to/script.dart,最稳、无缓存干扰 - 如果坚持用 F5 调试:按
Ctrl+Shift+P输入Debug: Open launch.json,选择Dart & Flutter环境,生成模板后修改program字段为你的脚本绝对路径,例如"program": "${workspaceFolder}/hello.dart" - 别依赖“运行代码片段”类插件——它们常绕过 SDK 检查,出问题时连错误都定位不到
- 确保脚本第一行没写
void main() async {却忘了import 'dart:async';,这类语法错误会导致dart run直接退出,F5 也会卡住无响应
launch.json 中 type 设成 dart 还是 flutter?
取决于你运行的是什么:纯 Dart 脚本用 dart,Flutter 项目入口(如 lib/main.dart)必须用 flutter,否则断点不命中、热重载失效。
- Flutter 项目调试必须设
"type": "flutter",且"request": "launch";设成"dart"会导致它跳过 Flutter 引擎初始化,控制台只打印Launching lib/main.dart on Chrome...就结束 - 纯 Dart 项目(无
pubspec.yaml或不含flutter:依赖)只能用"type": "dart",否则插件会尝试调用flutter run并报错 - 检查当前工作区是否在 Flutter 项目根目录(含合法
pubspec.yaml):VSCode 只有在该目录下才会自动激活 Flutter 调试适配器 - 如果
launch.json里 type 写对了还报错,删掉项目下的.dart_tool和.packages,再运行flutter pub get重建缓存
最容易被忽略的一点:VSCode GUI 启动方式(比如双击图标、从 Dock 点击)往往不加载 shell 配置(~/.zshrc 或 Path),导致它看不见你在终端里能跑通的 dart 或 flutter。Mac 用户请用终端执行 code --new-window 启动,Windows 用户务必把 flutter\bin 加进「系统变量」而非「用户变量」——这是断点不命中的高频隐性原因。


















