vscode本身不执行dart/flutter代码,依赖本地dart sdk或flutter sdk;运行纯dart脚本需安装dart sdk并配置path,仅装dart code插件,打开含合法pubspec.yaml的项目根目录,右键main.dart选择“run dart program”或用ctrl+shift+p调用dart: run命令。

VSCode 本身不运行 Dart 或 Flutter 代码,它只提供编辑、调试入口和语言服务;真正执行靠的是你本地装好的 Dart SDK 或 Flutter SDK。装错 SDK、路径配错、插件冲突,三者任一出问题,main.dart 就会报红、print 不输出、F5 按下没反应。
怎么在 VSCode 里直接运行一个 main.dart 脚本
纯 Dart CLI 脚本(不涉及 UI)不需要 Flutter SDK,只依赖 Dart SDK:
- 确认已安装 Dart SDK:终端运行
dart --version有输出,且路径已加进系统PATH - VSCode 中只装
Dart Code插件(作者Dart-Code.dart-code),别装其他 Dart 相关扩展 - 用 VSCode 打开**包含
main.dart的文件夹**(不是打开单个文件),确保该文件夹下有pubspec.yaml(哪怕空的,只要格式合法) - 右键
main.dart→ “Run Dart Program”,或按Ctrl+Shift+P输入Dart: Run,它会调用dart run main.dart - 如果提示
Target of URI doesn't exist,说明分析器没加载上下文:在终端执行dart pub get,再等右下角状态栏显示Dart: Ready
为什么装了 Flutter 插件,flutter run 能跑,但 VSCode 按 F5 却卡在 Launching lib/main.dart on Chrome...
这是 Flutter Web 调试最典型的假死现象,本质是开发服务器未就绪或调试协议未握手成功,和插件配置关系不大:
- 检查
.vscode/launch.json:其中request必须为"launch",type必须为"dart",不能是"chrome"或"pwa-chrome" - 确保断点打在
void main()第一行,而不是热重载后才执行的 widget 构建逻辑里 - 关闭所有 Chrome 实例(包括后台进程),再按 F5 —— Flutter Web 调试器对 Chrome 实例独占性很强
- 若仍卡住,终端手动执行
flutter run -d chrome --web-hostname localhost --web-port 8080,看是否真能启动;如果手动能跑,说明 VSCode 调试配置或缓存异常 - 临时禁用
dart.previewLsp设置(设为false),某些旧项目 LSP 缓存错乱会导致调试器无法 attach
dart.flutterSdkPath 该指向哪?指向 bin 子目录会怎样
必须指向 Flutter SDK 解压后的**根目录**,例如 /Users/you/flutter 或 C:srclutter,绝不能是 /.../flutter/bin:
- 指向
bin子目录会导致插件找不到packages/flutter_tools,表现为:设备列表为空、热重载按钮灰掉、右下角不显示设备选择器 - VSCode 插件通过该路径下的
bin/flutter启动工具链,再从bin/cache/dart-sdk自动推导 Dart SDK 位置 —— 所以不用单独配dart.sdkPath - Windows 用户注意路径写法:
"dart.flutterSdkPath": "C:\src\flutter"(双反斜杠),写成单斜杠或正斜杠都可能解析失败 - 改完后必须执行
Ctrl+Shift+P→Flutter: Reload Window,仅保存设置不生效
新建项目后满屏红色波浪线,package:flutter/material.dart 报错
这不是插件没装,而是 Dart 分析器根本没识别这是个 Flutter 项目:
- 确认你是在 VSCode 中打开**项目根目录**(即包含
pubspec.yaml和lib/的那一层),不是打开lib子文件夹 - 检查
pubspec.yaml是否合法:第一行必须是name:,后面跟英文名(不能有空格或中文),且缩进是空格不是 tab - 在 VSCode 内置终端中执行
flutter pub get(不要点 GUI 按钮),等待右下角出现Analysis server ready - 如果仍报红,按
Ctrl+Shift+P输入Dart: Restart Analysis Server强制刷新上下文 - 卸载所有非官方插件:比如 “Flutter Snippets”、“Dart Snippets”、“Quick Flutter” 等,它们会干扰语言服务初始化
最容易被忽略的一点:VSCode 插件读取的是你启动它时 shell 的环境变量。如果你用桌面图标或 Spotlight 启动 VSCode,它可能根本没加载 ~/.zshrc 里的 PATH —— 此时即使终端里 flutter doctor 全绿,VSCode 内部依然找不到 SDK。解决方法是:从终端执行 code . 启动 VSCode,或在设置里手动填死 dart.flutterSdkPath。











