开始一个项目
Agent 和 Skill 都装好了。这一页你要做两件事:决定做什么,并把电脑准备好——它们其实是 一步,因为要装什么由你选的那个决定,你没选的一样都不会装。你也不需要自己敲命令:把提示词 粘进去,再看回来的结果对不对。
你想做哪一种
现在选的不用管一辈子,项目以后可以再加一个端(见最后一节), 按"你最想先看到什么跑起来"来选就行。
| 如果你想要 | 就选 | 它是什么 |
|---|---|---|
| 一个登录进去管东西的网站——管商品、管订单、管用户、管文章 | 后台管理系统 | 两半:你看到的那个网页,和背后存数据的那部分 |
| 一个装在电脑上、有自己窗口的真程序 | 桌面应用 | 一个端。自己把数据存在文件里,旁边不需要跑别的东西 |
| 一个装在手机上的应用 | Android 应用 | 一个端,但必须用手机自己那套工具链来构建 |
三者之间,有一个区别比其他都重要:
| 需要跑数据库 | 能在哪构建 | |
|---|---|---|
| 后台管理系统 | 需要——跑在 Docker 里 | 哪都行 |
| 桌面应用 | 不需要 | 只能在它要发布的那种电脑上 |
| Android 应用 | 不需要 | 哪都行,装上手机工具链就好 |
Windows 的应用只能在 Windows 上构建,macOS 的只能在 macOS 上,没有捷径。如果 Agent 说 可以放进 Docker 跳过这一步,那不行——拒绝它,让它老老实实装工具。
这样说,让它把环境配好
不管选哪一种,这句话的形状都一样:说清楚你要做什么,要求它在装东西之前先告诉你缺了 什么:
把这台电脑配置成能开发 Marsquakes <后台管理系统 | 桌面应用 | Android 应用>。现在只装基础的
那几个,项目自己的那套工具等项目建好了再说。在装任何东西之前,先告诉我缺了什么。
装什么、按什么顺序装、你的操作系统该怎么装,Agent 都已经知道了——你不需要给它清单。
你应该看到: 先是一份"你的电脑缺了什么"的清单,然后是安装过程,最后再检测一遍, 确认现在都有了。
安装程序可以顺利跑完,却什么有用的都没装上。真正算数的是第二遍检测——之前"缺失"的那一项 现在变成了"找到"。Agent 如果跳过,就说:"再检测一遍,把结果给我看。"
"准备好了"应该是什么样
这里不会"先装着再说"。每个项目都必须有这三个:
| 程序 | 必须是 | 如果比这个老 |
|---|---|---|
| Node.js | 22.12.0 或更高 | Marsquakes 工具本身跑不起来 |
| pnpm | 9.0.0 或更高 | 安装项目的各个部分会失败 |
| git | 2.20.0 或更高 | 项目创建不了 |
如果某一项是"太老"而不是"没有",就说:"这个版本太老了,换成支持的版本,不要绕过去。"
然后,看你选了哪一种,还有一样东西必须现在就有,因为没有任何工具能以后替你把它装上:
| 如果你选了 | 现在还需要 | 为什么不能等 |
|---|---|---|
| 后台管理系统 | Docker 20.10.0+ 和 Docker Compose 2.0.0+ | 你已经决定了要用盒子跑数据库,所以这是你做的选择,不是从项目推导出来的。Compose 如果是 1. 开头,那是硬失败不是警告——它读不了这个项目的文件格式 |
| 桌面应用 | 你的操作系统的构建工具 | 这些没有任何工具能替你装——见下面那张表 |
| Android 应用 | 不需要额外的 | 手机那套工具链是从项目推导出来的,所以它可以等 |
其他的东西——Java、Maven、Rust、Android SDK——故意不在这两个清单里。它们由项目最终 有什么决定,而现在还没有项目,所以等项目初始化的时候再装。Agent 现在就想装的话,你就说: "先不装,等项目初始化的时候再装。"
Docker 在这里是因为你决定了要用盒子跑数据库。Java、Maven 和 Rust 取决于项目说自己 有什么——而项目还不存在。
各宿主机的系统依赖
只有选桌面应用才要看这一节。这些包名会随版本变化,所以最好让 Agent 去看官方列表, 别让它自己猜:
读一下 https://v2.tauri.app/start/prerequisites/ ,把里面针对我这个操作系统
列出的包装上。
你应该看到: Agent 报出它装了哪些包,并且和那个页面上针对你的电脑列出的一致。
| 你的电脑 | 会装什么 | 装完之后应该看到 |
|---|---|---|
| Windows | 微软的构建工具——浏览器组件在 Windows 10 及以上自带 | 编译器有响应,而不是"无法识别" |
| macOS | 苹果的命令行开发者工具 | 一个路径,例如 /Library/Developer/CommandLineTools |
| Linux | 一组系统图形库和网页库 | 每一样都报出一个版本号 |
这看起来像是装坏了,其实不是。那个终端窗口是在装好之前打开的,所以它看到的信息是旧的。 说:"开一个新终端窗口再检测一次,别直接重装。"
Agent 不该"顺手改好"的东西
这个项目故意锁定了一些版本。它们看着过时,想帮忙的 Agent 会主动提出升级,而报错却会把 责任推给不相干的东西——一个报内存问题,另一个报数据库损坏——你根本猜不到真实原因。把下面 这句给它,让它知道不该碰:
在改这个项目里任何东西之前,先读最外层的 AGENTS.md,然后告诉我它规定了哪些版本和构建
配置不能动。
你应该看到: Agent 点出几个具体的版本锁定和一项构建配置,并且说明它不会去碰。 说不出来就是没读过那个文件——而它迟早会去"修"其中一条。你说:"认真读一遍那个文件, 重新回答。"
万一它因为下载失败而提出换下载源,把这句也给它:
如果下载失败,去 Docker 自己的设置里配代理,不要换成别的下载源。
如果你后来又加了一个端
假设后台管理系统已经跑起来了,你后来又想加一个桌面应用。启用它是对项目的改动,而"需要 哪些工具"由项目决定——所以启用之后,再让 Agent 做一次安装那一步:
提示词
给这个项目启用桌面应用,然后把它现在需要的东西装上。
你应该看到: 这次装的是 Rust,Java 不会再装一遍,因为它已经在了。
这就是为什么一开始什么都没提前装:站在这一页时,谁也不知道你以后还会想要一个桌面应用, 靠猜就只能"万一你要用"地把所有东西都装上。改成问项目之后,就 算你后来改了主意,答案也 还是对的——你只要再让它安装一次。
下一步
去你选的那一种对应的提示词页面:
| 你选的 | 下一步 |
|---|---|
| 后台管理系统 | 构建后台管理系统:创建项目 |
| 桌面应用 | 构建桌面应用:创建项目 |
| Android 应用 | 构建 Android 应用:创建项目 |