
1. 从零搭 Dart 环境为什么我建议先理清 Key 管理VS Code 配置 Dart 开发环境这件事本身并不复杂装 SDK、配 PATH、装插件、写 settings.json四步就能跑起 Hello World。但真正让开发者头疼的往往不是环境本身而是环境跑起来之后——模型调用通道怎么管。你在 VS Code 里写 Dart可能同时用着代码补全、AI 辅助、单元测试生成、Flutter Widget 建议这些能力背后各自要配一套 API Key、Base URL、模型名。项目一多Key 散落在各个插件的配置里换台机器就得重新翻一遍。这篇内容聚焦的就是这个组合场景在 VS Code 里把 Dart/Flutter 开发环境搭好同时用 TaoToken 统一管理模型调用的 Key 和 API 通道。TaoToken 是一个面向开发者的模型 API 聚合与 Key 管理平台它能让你用一个 Key 对接多种模型服务适合需要频繁切换模型、或者团队协作时统一通道配置的 Dart/Flutter 开发者。下面我会给出可直接复制的 settings.json 骨架、环境变量写法、launch.json 调试配置以及验证通道是否连通的完整步骤。整个流程分两条线一条是 Dart 环境本身SDK、插件、PATH另一条是模型通道TaoToken Key、Base URL、环境变量。两条线在 settings.json 里汇合这样你打开任何一个 Dart 项目模型调用配置都是现成的。2. 前置准备Dart SDK、VS Code 插件与 TaoToken Key2.1 Dart SDK 安装与环境变量Dart SDK 有两种获取方式独立 SDK 和随 Flutter 一起安装。如果你只写纯 Dart装独立 SDK 就够了如果要做 Flutter 开发Flutter SDK 里已经包含 Dart不需要重复安装。下载后解压到一个没有空格和中文的路径比如D:\dev\dart-sdk或~/dev/dart-sdk。然后把bin目录加进系统 PATHWindows 在「系统属性 → 环境变量 → Path」里新增D:\dev\dart-sdk\bin。macOS/Linux 在~/.zshrc或~/.bashrc里追加export PATH$PATH:$HOME/dev/dart-sdk/bin改完重开终端验证dart --version看到类似Dart SDK version: 3.x.x就说明 PATH 生效了。这一步如果报「command not found」九成是 PATH 没写对或者终端没重启。2.2 VS Code 必装插件打开 VS Code 扩展面板搜索并安装这三个插件名作用是否必装Dart语言支持、分析、补全必装FlutterFlutter 项目支持、热重载做 Flutter 才装Code Runner快速运行单文件可选调试用 launch.json 更稳装完 Dart 插件后VS Code 会自动提示你选择 Dart SDK 路径。如果没提示用命令面板CtrlShiftP执行Dart: Change SDK指向你解压的 SDK 目录。2.3 获取 TaoToken Key到 TaoToken 控制台创建一个 API Key。这个 Key 就是你后续所有模型调用的统一凭证。创建时建议按用途命名比如vscode-dart-dev方便以后区分。拿到 Key 之后先别急着写进 settings.json。直接写进配置文件有两个问题一是容易随项目提交到 Git二是换 Key 要改多处。推荐用环境变量存 Keysettings.json 里只引用变量名。3. 可复制的 settings.json 骨架与环境变量写法3.1 环境变量配置先在你的系统里设置两个环境变量# macOS/Linux写进 ~/.zshrc export TAOTOKEN_API_KEY你的Key export TAOTOKEN_BASE_URLhttps://taotoken.net/api# Windows PowerShell永久生效 [Environment]::SetEnvironmentVariable(TAOTOKEN_API_KEY, 你的Key, User) [Environment]::SetEnvironmentVariable(TAOTOKEN_BASE_URL, https://taotoken.net/api, User)设完重开终端用echo $TAOTOKEN_API_KEYWindows 用$env:TAOTOKEN_API_KEY确认能打印出来。这一步很关键后面 settings.json 引用不到变量多半是这里没生效。3.2 settings.json 完整骨架VS Code 的用户级 settings.json 路径Windows 是%APPDATA%\Code\User\settings.jsonmacOS 是~/Library/Application Support/Code/User/settings.jsonLinux 是~/.config/Code/User/settings.json。你也可以用命令面板Preferences: Open User Settings (JSON)直接打开。下面这份骨架把 Dart 环境配置和 TaoToken 通道配置放在一起可以直接复制后按需删改{ dart.sdkPath: D:/dev/dart-sdk, dart.flutterSdkPath: D:/dev/flutter, dart.checkForSdkUpdates: false, dart.analysisExcludedFolders: [ **/.dart_tool, **/build ], editor.formatOnSave: true, [dart]: { editor.defaultFormatter: Dart-Code.dart-code, editor.tabSize: 2, editor.insertSpaces: true }, dart.previewFlutterUiGuides: true, dart.openDevTools: flutter, terminal.integrated.env.windows: { TAOTOKEN_API_KEY: ${env:TAOTOKEN_API_KEY}, TAOTOKEN_BASE_URL: ${env:TAOTOKEN_BASE_URL} }, terminal.integrated.env.linux: { TAOTOKEN_API_KEY: ${env:TAOTOKEN_API_KEY}, TAOTOKEN_BASE_URL: ${env:TAOTOKEN_BASE_URL} }, terminal.integrated.env.osx: { TAOTOKEN_API_KEY: ${env:TAOTOKEN_API_KEY}, TAOTOKEN_BASE_URL: ${env:TAOTOKEN_BASE_URL} } }几个要点说明。dart.sdkPath用正斜杠或双反斜杠别用单反斜杠否则 JSON 解析会出错。dart.analysisExcludedFolders把.dart_tool和build排除掉能明显减少分析器的内存占用大项目里尤其明显。terminal.integrated.env.*这三段的作用是当你在 VS Code 内置终端里跑 Dart 脚本时终端能读到 TaoToken 的环境变量脚本里用Platform.environment[TAOTOKEN_API_KEY]就能取到。3.3 在 Dart 代码里读取通道配置写一个最小的 Dart 文件验证环境变量能被读到import dart:io; void main() { final apiKey Platform.environment[TAOTOKEN_API_KEY]; final baseUrl Platform.environment[TAOTOKEN_BASE_URL]; if (apiKey null || apiKey.isEmpty) { print(未读取到 TAOTOKEN_API_KEY请检查环境变量); return; } print(Key 前缀: ${apiKey.substring(0, 6)}...); print(Base URL: $baseUrl); }用dart run main.dart运行。如果打印出 Key 前缀和 Base URL说明环境变量链路是通的。这一步跑不通后面所有模型调用都免谈。4. launch.json 调试配置与通道连通验证4.1 launch.json 骨架在项目根目录建.vscode/launch.json这是调试配置。Dart 项目有两种常见调试场景纯 Dart 脚本和 Flutter 应用。纯 Dart 脚本{ version: 0.2.0, configurations: [ { name: Dart: 当前文件, type: dart, request: launch, program: ${file}, env: { TAOTOKEN_API_KEY: ${env:TAOTOKEN_API_KEY}, TAOTOKEN_BASE_URL: ${env:TAOTOKEN_BASE_URL} } } ] }Flutter 应用{ name: Flutter: 调试模式, type: dart, request: launch, program: lib/main.dart, flutterMode: debug, env: { TAOTOKEN_API_KEY: ${env:TAOTOKEN_API_KEY}, TAOTOKEN_BASE_URL: ${env:TAOTOKEN_BASE_URL} } }env字段是重点。它把系统环境变量注入到调试进程里这样你在代码里读Platform.environment就能拿到。注意${env:...}是 VS Code 的变量替换语法不是 Dart 语法别搞混。4.2 验证通道连通写一个真正发起 HTTP 请求的验证脚本确认 TaoToken 通道能通。Dart 里用dart:io的 HttpClient 或者package:http都行这里用内置的 HttpClient 避免额外依赖import dart:convert; import dart:io; Futurevoid main() async { final apiKey Platform.environment[TAOTOKEN_API_KEY]; final baseUrl Platform.environment[TAOTOKEN_BASE_URL]; if (apiKey null || baseUrl null) { print(环境变量缺失); exit(1); } final client HttpClient(); final request await client.postUrl( Uri.parse($baseUrl/v1/chat/completions), ); request.headers.set(Content-Type, application/json); request.headers.set(Authorization, Bearer $apiKey); request.write(jsonEncode({ model: gpt-4o-mini, messages: [ {role: user, content: 回复两个字连通} ], max_tokens: 10, })); final response await request.close(); final body await response.transform(utf8.decoder).join(); print(状态码: ${response.statusCode}); print(响应: $body); client.close(); }运行后如果状态码是 200响应里能看到模型返回的内容说明整条链路——环境变量、settings.json、launch.json、TaoToken 通道——全部打通。如果状态码是 401检查 Key 是否正确如果是 404检查 Base URL 有没有多写或少写路径段。4.3 把模型调用封装成可复用函数验证通过后把请求逻辑抽成一个函数方便在项目里复用import dart:convert; import dart:io; class TaoTokenClient { final String _apiKey; final String _baseUrl; final HttpClient _client HttpClient(); TaoTokenClient() : _apiKey Platform.environment[TAOTOKEN_API_KEY] ?? , _baseUrl Platform.environment[TAOTOKEN_BASE_URL] ?? ; FutureString chat(String prompt, {String model gpt-4o-mini}) async { final request await _client.postUrl( Uri.parse($_baseUrl/v1/chat/completions), ); request.headers.set(Content-Type, application/json); request.headers.set(Authorization, Bearer $_apiKey); request.write(jsonEncode({ model: model, messages: [ {role: user, content: prompt} ], })); final response await request.close(); final body await response.transform(utf8.decoder).join(); final json jsonDecode(body) as MapString, dynamic; final choices json[choices] as List; return choices.first[message][content] as String; } void dispose() _client.close(); }这样在 Dart 项目里调用模型就是一行await client.chat(你的问题)。Key 和 Base URL 都从环境变量走代码里不出现明文提交到仓库也安全。5. 本篇常见错误排查5.1 dart --version 报 command not foundPATH 没配好或者配了但终端没重启。Windows 上还要注意如果你用的是 Git Bash 或 WSLPATH 的写法跟 PowerShell 不一样得在对应的 shell 配置文件里单独配。另一个常见坑是 SDK 路径里有空格比如C:\Program Files\dart-sdk某些工具链处理不了建议换到无空格路径。5.2 settings.json 里 ${env:...} 不生效VS Code 的${env:VAR}语法只在部分配置项里支持不是所有字段都能用。terminal.integrated.env.*和launch.json的env字段是支持的但如果你把它写在别的插件配置里可能不认。遇到不生效先确认字段是否支持变量替换再确认系统环境变量本身是否设置成功。5.3 调试时读不到环境变量launch.json 的env字段没写或者写错了变量名。注意${env:TAOTOKEN_API_KEY}里的变量名必须和系统里设的完全一致大小写敏感。另外如果你是从 VS Code 的「运行」按钮启动而不是 F5 调试可能走的是 Code Runner 而不是 launch.json环境变量注入方式不同。5.4 请求返回 401 或 403Key 无效或没传对。检查Authorization头是不是Bearer加 Key注意 Bearer 后面有个空格。另外确认 Key 没有多余的空格或换行从控制台复制时容易带上。5.5 请求返回 404Base URL 路径不对。TaoToken 的 API 地址是https://taotoken.net/api拼接/v1/chat/completions后是完整路径。如果你在 Base URL 里多写了/v1就会变成/v1/v1/chat/completions自然 404。5.6 Dart 分析器卡顿或内存占用高大项目里.dart_tool和build目录会被分析器扫描导致卡顿。在 settings.json 的dart.analysisExcludedFolders里把这两个目录排除掉重启 VS Code 后生效。如果还卡检查是不是装了多个 Dart 相关插件互相冲突。6. 通道配好之后下一步怎么走环境搭完、通道验证通过接下来就是把它用起来。如果你主要做模型对话类的调试可以直接在 TaoToken 的模型对话页面里试不同模型的效果确认哪个模型适合你的 Dart 项目场景。如果你要长期在 VS Code 里做编码辅助、Agent 类开发建议看一下 Coding Plan它更适合高频、长期的编码场景Key 和通道管理也更省心。接入过程中如果遇到报错优先去 API Keys 页面确认 Key 状态再去接入文档对照请求格式。大部分连通性问题都能在这两个地方找到答案。通道这东西配一次通一次后面就是复制粘贴的事了。