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 <p>右下角状态栏出现 <code>Dart: Ready</code> 才算真正就绪。</p><div class="aritcle_card flexRow artxards"> <div class="artcardd flexRow"> <a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill1675" title="VSCode"><img src="https://img.php.cn/upload/skill/000/000/081/178842972858328.jpg" alt="VSCode" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a rel="nofollow" href="/xiazai/skill1675" title="VSCode" class="overflowclass">VSCode</a> <p class="overflowclass">避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。</p> </div> <a rel="nofollow" href="/xiazai/skill1675" title="VSCode" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div> <h3> <code>launch.json</code> 中 <code>type</code> 该设 <code>"dart"</code> 还是 <code>"flutter"</code> </h3> <p>取决于你运行的是什么程序,设错会导致断点不命中、热重载失效、甚至直接报错。</p>
- 纯 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 按下没反应——这个路径错一点,整个调试链就断了。










