vscode配置dart开发环境的核心是安装sdk并正确配置path:插件不自带sdk,需从dart.dev或flutter.dev下载对应sdk,解压后将bin路径加入系统path,终端验证dart --version或flutter --version,重启vscode;调试需用open folder打开含pubspec.yaml的项目根目录,并配置正确的launch.json。

VSCode 本身不带 Dart 运行时,装插件只是加了语法高亮和调试界面,dart 命令找不到、断点不命中、pub get 失败——这些问题全指向一个根源:SDK 没装或 PATH 没配对。
dart command not found 是最常见卡点
VSCode 的 Dart 插件不自带 SDK,它只负责调用你系统里已安装的 dart 或 flutter 命令。终端里能跑 dart --version,VSCode 才可能识别;否则右下角状态栏不会显示 Dart SDK 版本,调试器根本启动不了。
- 去 dart.dev/get-dart 下独立 Dart SDK(CLI/Server 项目用),或 flutter.dev 下 Flutter SDK(含 UI 开发必需的
package:flutter/*) - 解压后把
bin目录路径加进系统 PATH:
macOS/Linux 编辑~/.zshrc,追加export PATH="$PATH:/path/to/dart-sdk/bin"或export PATH="$PATH:/path/to/flutter/bin";Windows 在「系统属性 → 环境变量」里改 - 新开终端执行
which dart(macOS/Linux)或where dart(Windows),确认有输出;再运行dart --version或flutter --version - 重启 VSCode —— 它只在启动时读一次环境变量,重载窗口无效
launch.json 调试配置必须匹配项目类型
VSCode 默认生成的调试配置常为 Flutter 项目设计,纯 Dart CLI 项目直接套用会跳过断点,甚至报 “No active project”。关键不是填对字段,而是让调试器准确找到入口和上下文。
- 确保项目根目录有合法
pubspec.yaml(至少含name:和version:),且用 VSCode「File → Open Folder」打开该目录,不是单个.dart文件 -
.vscode/launch.json中必须指定"program"为具体文件路径,例如"bin/main.dart",不能写"lib/main.dart"或目录名 - CLI 项目推荐用这个最小可用模板:
{ "version": "0.2.0", "configurations": [ { "name": "Dart: Run", "type": "dart", "request": "launch", "program": "bin/main.dart", "cwd": "${workspaceFolder}" } ] } - 如果
pubspec.yaml里声明了executables:,可直接写"program": "myapp"(插件会自动映射到bin/myapp.dart)
pub get 失败几乎全是路径或结构问题
插件只有在检测到有效项目根时才激活 pub 支持。打开错目录、pubspec.yaml 缩进错误、甚至文件权限不对,都会导致 pub get 报 “Could not find a file named ‘pubspec.yaml’”。
- 务必用 VSCode 打开**包含
pubspec.yaml的文件夹**,而不是某个.dart文件;右下角状态栏应显示 “Dart: Ready”,不是 “analyzing…” 卡住 -
pubspec.yaml必须在根目录,且缩进用空格(非 Tab),name:和version:字段不能缺;可用dart pub publish --dry-run快速验证格式 - 优先右键点击
pubspec.yaml→ “Dart: Get Packages”,比在集成终端里敲pub get更可靠(插件会自动切换到正确工作区) - 若仍失败,删掉
.dart_tool和.packages,再重试;必要时命令面板运行Dart: Restart Analysis Server
最容易被忽略的是:同时装了独立 Dart SDK 和 Flutter SDK 时,VSCode 插件默认优先用 dart.sdkPath,但 Flutter 项目必须走 flutter.bin 下的 Dart。此时要手动清空 dart.sdkPath,只设 dart.flutterSdkPath,否则 package:flutter/material.dart 一定报红。











