ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

初建 Vue 3 + TypeScript + Vite + VS Code 项目:把 Base URL 改到 TaoToken 的完整配置

初建 Vue 3 + TypeScript + Vite + VS Code 项目:把 Base URL 改到 TaoToken 的完整配置 1. 从零建 Vue 3 TypeScript Vite 工程为什么还要顺手把 AI 通道配好如果你刚装好 VS Code准备开一个 Vue 3 TypeScript Vite 项目大概率会经历这么一段npm create vuelatest一路回车npm install装完npm run dev跑起来浏览器能打开心里挺美。然后你打开App.vue想写个接口请求突然发现——AI 补全要么不触发要么触发了但请求发不出去控制台报一堆401或者local proxy failed。这时候你才意识到项目骨架跑通只是第一步真正影响日常编码效率的是「编辑器里的 AI 辅助链路」有没有接上。这篇就按这个真实场景来从零搭一个 Vue 3 TypeScript Vite 工程在 VS Code 里把插件、路径别名、类型检查配好再把 AI 编码助手的 Base URL 统一改到 TaoToken最后用三步验证dev server、类型检查、请求连通性确认整条链路是通的。适合刚接触 Vue 3 组合式 API、又想在 VS Code 里用上 AI 补全和对话的开发者。全程命令和配置都可以直接复制路径按你自己的项目名替换即可。我试过把 AI 配置散落在各个插件里结果换台机器就要重新找一遍 Key 和地址后来统一收口到项目级配置迁移成本几乎为零。下面按顺序来。2. TaoToken 前置准备拿 Key、认地址、选对模型 ID在动配置文件之前先把「钥匙」和「门牌号」准备好。TaoToken 的官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基础地址是 https://taotoken.net/api 这个地址不加 UTM 参数配置里就写它。你需要在这个平台上创建一个 API Key后面所有插件、CLI、脚本都复用同一个 Key不要一个插件一个 Key否则排查问题时根本分不清是谁在报错。具体动作登录后进入控制台找到 API Keys 页面deep linkhttps://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 新建一个 Key复制出来先存到本地一个临时文件里。注意 Key 只在创建时完整显示一次关掉页面就看不到了所以复制这一步别偷懒。如果你还没决定用哪个模型可以先去模型对话页面deep linkhttps://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 试几句确认响应正常再回到控制台建 Key。模型 ID 这块要特别说清楚。很多新手报reading choices错误根源就是模型 ID 写错了。TaoToken 的接口是 OpenAI 兼容格式请求体里model字段必须填平台支持的模型标识比如claude-sonnet-4-5、gpt-4o这类。你在配置插件时Base URL 填https://taotoken.net/apiKey 填刚才复制的Model ID 填你实际要用的那个。三者缺一不可而且必须成套出现——这也是后面 §5 排障的核心。如果你打算长期用 AI 做编码和 Agent 任务可以顺手了解一下 Coding Plandeep linkhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 它更适合高频调用场景。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 遇到不确定的参数格式以文档为准。注意Key 不要硬编码进会提交到 Git 的文件里。下面我会把 Key 放在.env.local或 VS Code 的用户级 settings 中项目里的配置文件只引用变量名。3. 可复制配置vite.config.ts、tsconfig.json、.vscode/settings.json 与统一 Key这一节是全文的核心所有片段都可以直接复制。先建项目npm create vuelatest项目名我写成wyinfosys-client交互里只勾选 TypeScript其他Router、Pinia、ESLint、Prettier先不选保持骨架干净后面按需追加。然后cd wyinfosys-client npm install如果提示 Node 版本与项目要求不一致按提示升到 v20.19.5LTS或更高再重新打开 VS Code 打开项目目录。3.1 vite.config.ts别名与开发服务器import { fileURLToPath, URL } from node:url import { defineConfig } from vite import vue from vitejs/plugin-vue export default defineConfig({ plugins: [vue()], resolve: { alias: { : fileURLToPath(new URL(./src, import.meta.url)) } }, server: { port: 5173, open: true } })指向src这样import HelloWorld from /components/HelloWorld.vue就能被 Vite 和 TypeScript 同时识别。注意别名要在vite.config.ts和tsconfig.json里各写一份两边保持一致否则会出现「编辑器不报错但构建报错」或者反过来。3.2 tsconfig.json路径映射与类型检查Vue 官方模板会生成tsconfig.jsontsconfig.app.jsontsconfig.node.json的组合。你只需要在tsconfig.app.json的compilerOptions里补上baseUrl和paths{ extends: vue/tsconfig/tsconfig.dom.json, include: [env.d.ts, src/**/*, src/**/*.vue], exclude: [src/**/__tests__/*], compilerOptions: { composite: true, tsBuildInfoFile: ./node_modules/.tmp/tsconfig.app.tsbuildinfo, baseUrl: ., paths: { /*: [./src/*] } } }baseUrl设为.paths里/*映射到./src/*。这样 VS Code 的 TypeScript 服务才能对/开头的导入做跳转和类型推断。改完保存重启一下 TS 服务命令面板搜TypeScript: Restart TS Server。3.3 .vscode/settings.json插件与 AI 统一配置在项目根目录建.vscode/settings.json把编辑器行为、格式化、以及 AI 助手的 Base URL 统一收口{ editor.formatOnSave: true, editor.defaultFormatter: esbenp.prettier-vscode, editor.codeActionsOnSave: { source.fixAll.eslint: explicit }, typescript.tsdk: node_modules/typescript/lib, typescript.suggest.paths: false, javascript.suggest.paths: false, path-intellisense.mappings: { : ${workspaceFolder}/src }, cSpell.words: [vite, vue, pinia, taotoken], VSCodeCounter.exclude: [**/node_modules/**, **/dist/**] }这里把typescript.suggest.paths和javascript.suggest.paths关掉是为了让 Path Intellisense 接管路径补全避免两套提示打架。path-intellisense.mappings里的和tsconfig.json的paths对应这样输入/时能列出src下的文件。3.4 统一 Key 配置.env.local 插件引用在项目根目录建.env.local记得加进.gitignoreVITE_TAOTOKEN_BASE_URLhttps://taotoken.net/api VITE_TAOTOKEN_API_KEYsk-你的Key VITE_TAOTOKEN_MODELclaude-sonnet-4-5然后在需要调用 AI 的代码里通过import.meta.env.VITE_TAOTOKEN_API_KEY读取。如果你用的是支持自定义 Base URL 的 VS Code AI 插件比如 Cline、Continue 这类在插件设置里填Base URLhttps://taotoken.net/apiAPI Keysk-你的KeyModel IDclaude-sonnet-4-5这三件套必须成套出现。如果你用的是 Claude Code 这类 CLI 工具它的配置通常写在~/.claude/settings.json或项目级.claude/settings.json里把ANTHROPIC_BASE_URL指向https://taotoken.net/apiANTHROPIC_API_KEY填你的 Key模型 ID 填对应值。CC Switch 这类切换工具也是同样的三件套逻辑Base URL、Key、Model ID 一个都不能少。提示.env.local里的变量只有VITE_前缀的才会暴露给客户端代码。如果你不想让 Key 进前端 bundle就把 AI 调用放到后端或 Vite 的 dev server 中间件里前端只调自己的接口。4. 三步验证dev server、类型检查、请求连通性配置写完不算完得跑一遍确认。三步动作每步都有明确的成功标志。第一步启动 dev servernpm run dev成功标志终端输出Local: http://localhost:5173/浏览器自动打开页面显示 Vue 默认欢迎页。如果端口被占用Vite 会自动换端口看终端实际输出的地址为准。第二步类型检查npm run type-checkVue 官方模板的package.json里通常有type-check脚本底层是vue-tsc --build。成功标志命令退出码为 0没有任何 TS 报错。如果报Cannot find module /...说明tsconfig.app.json的paths没配对回去检查 §3.2。第三步请求连通性。写一个最小的测试脚本或者直接在src/main.ts里临时加一段const baseUrl import.meta.env.VITE_TAOTOKEN_BASE_URL const apiKey import.meta.env.VITE_TAOTOKEN_API_KEY const model import.meta.env.VITE_TAOTOKEN_MODEL fetch(${baseUrl}/v1/chat/completions, { method: POST, headers: { Content-Type: application/json, Authorization: Bearer ${apiKey} }, body: JSON.stringify({ model, messages: [{ role: user, content: 只回复两个字通了 }] }) }) .then((res) res.json()) .then((data) console.log(AI 响应, data.choices?.[0]?.message?.content)) .catch((err) console.error(请求失败, err))成功标志浏览器控制台打印出AI 响应通了。如果打印的是undefined说明响应结构不对大概率是模型 ID 写错或 Key 无效如果直接catch到错误看错误信息对照下一节排查。三步都过了说明项目骨架和 API 通道都通了。这时候你再回到 VS CodeAI 插件的补全和对话应该也能正常工作因为它们用的是同一套 Base URL 和 Key。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth这一节按真实报错来每个都给出定位思路。401 Unauthorized最常见。先确认 Key 有没有复制完整前后有没有多余空格。然后确认请求头是Authorization: Bearer sk-xxx不是x-api-key或其他格式。如果 Key 是在.env.local里确认变量名拼写和import.meta.env读取的键一致。还有一种情况是 Key 被禁用或额度耗尽去控制台 API Keys 页面看一眼状态。local proxy failed这个报错通常出现在插件或 CLI 配置了本地代理端口但代理进程没起来。检查你的插件设置里有没有填http://127.0.0.1:xxxx这类本地地址如果有改成https://taotoken.net/api直连。另外确认没有其他工具在抢占同一个端口。reading choices这个报错几乎都是响应结构不符合预期。OpenAI 兼容接口的成功响应里内容在data.choices[0].message.content。如果choices是undefined说明返回的不是标准结构常见原因是模型 ID 写错平台返回了错误对象而不是补全结果。把model字段改成平台支持的模型标识重新请求。OAuth 相关报错如果你用的是 Claude Code 这类 CLI它可能默认走 OAuth 登录流程。当你把 Base URL 改到 TaoToken 后应该改用 API Key 认证而不是 OAuth。检查配置文件里是否有ANTHROPIC_API_KEY字段如果有OAuth 流程就不会触发。如果仍然报 OAuth 错误说明配置没生效确认配置文件路径对不对用户级 vs 项目级以及有没有被环境变量覆盖。类型检查报错但编辑器不报这种「两边不一致」通常是 VS Code 用的 TS 版本和项目本地版本不同。在.vscode/settings.json里加typescript.tsdk: node_modules/typescript/lib然后命令面板执行TypeScript: Select TypeScript Version选Use Workspace Version。路径别名跳转失效确认tsconfig.app.json的paths和vite.config.ts的alias两边都配了且值一致。改完重启 TS 服务。排障时如果拿不准参数格式直接翻接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。Key 的管理和新建在 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 。6. 把 AI 通道收口到项目级配置迁移和协作都省事走到这里你的 Vue 3 TypeScript Vite 项目应该已经能跑、能检查类型、能发 AI 请求了。最后说一个实践上的小习惯把 Base URL、Key、Model ID 这三件套统一放在.env.local和.vscode/settings.json里而不是散落在每个插件的图形界面里。这样做的好处是换机器时只要复制这两个文件Key 单独传所有插件和脚本都能立刻工作团队协作时.vscode/settings.json可以提交到 Git.env.local加进.gitignore新人拉下来填个 Key 就能跑。如果你后面要接更多 AI 工具比如 Cline 的 MCP、Codex 的auth.json记住它们本质上都是「Base URL Key Model ID」的变体。Base URL 统一写https://taotoken.net/apiKey 复用同一个Model ID 按工具要求填。这样你的 AI 编码链路就是一个可迁移、可复现的配置而不是一堆记不住的界面选项。模型对话入口在 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 长期编码和 Agent 任务可以看 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 。配置过程中遇到文档没覆盖的报错先按 §5 的四类错误对号入座基本能定位到问题。
返回列表