
dart command not found 的真实原因
VSCode 终端报 dart: command not found,不是插件没装好,而是它根本没找到 dart 这个可执行文件。Dart 插件本身不带 SDK,它只负责调用系统 PATH 里已有的 dart 命令——就像遥控器,没电视就按不动。
常见错误现象包括:
- 右下角状态栏不显示 Dart SDK 版本
- 右键 Run Code 报 “无法将 dart 识别为 cmdlet”
-
pub get失败,提示找不到命令
验证是否真装好了,必须新开一个终端(不是 VSCode 内置终端),运行:
dart --version
有输出才算成功。VSCode 启动时读一次环境变量,改完 PATH 后必须重启 VSCode,重载窗口无效。
PATH 配置到底要加哪一级路径
必须把 dart-sdk/bin 目录(不是 dart-sdk 根目录)加进系统 PATH。加错一级,dart 就永远找不到。
Windows 用户容易误把 C:\dart-sdk 加进 Path,实际应填 C:\dart-sdk\bin;macOS/Linux 用户常在 ~/.zshrc 里写错路径或漏掉 source ~/.zshrc。
确认方式:
- macOS/Linux:运行
which dart,输出应是/path/to/dart-sdk/bin/dart - Windows:运行
where dart,结果应含\bin\dart.exe - 别依赖 VSCode 内置终端验证,它可能缓存旧环境
launch.json 断点灰色?程序入口写错了
VSCode 默认生成的调试配置常为 Flutter 项目设计,纯 Dart CLI 项目直接套用会断点失效,控制台只显示 Waiting for connection。
关键点不在 launch.json 字段填得多全,而在于:
- 项目根目录必须有合法
pubspec.yaml(至少含name:和version:) - 用 VSCode 的 File → Open Folder 打开该目录,不是单个
.dart文件 -
launch.json中"program"必须指向具体文件,如"bin/main.dart",不能写"lib/main.dart"或只写"main.dart" - 如果项目没跑过
dart pub get,.dart_tool目录不存在,分析服务器也起不来
dart.sdkPath 设置项什么时候才需要填
绝大多数情况留空就行。VSCode Dart 插件默认从 PATH 自动找 dart,只有你本地同时装了多个 Dart SDK(比如独立 Dart SDK + Flutter SDK),且想指定某一个时,才手动填 dart.sdkPath。
填法有坑:
- 填的是
dart-sdk根目录(不是bin子目录) - Windows 路径要用双反斜杠或正斜杠,比如
"C:/dart-sdk",别写"C:\dart-sdk"(反斜杠会被当转义) - 填了之后反而覆盖 PATH 查找逻辑,一旦路径错,连
dart --version都不认
真正卡住的从来不是配置项怎么填,而是 dart 命令本身能不能在系统任意位置被调用。先让终端能跑,再让 VSCode 能读到,顺序乱了,后面全白搭。











