码巢引擎2026年开发文档
00-开发规范
后端规范
README
后端开发手册
前端规范
README
TypeScript最佳实践
前端布局规范
前端页面模板
前端颜色与组件规范
核心规范
组件配置手册
问题排查指南
页面模板
最佳实践
README
bp-20260223-m7ps
图片上传优化总结
BUG自动记录系统使用指南
README
TYPE_SAFETY_GUIDE
常见BUG知识库
常见BUG知识库
开发前检查清单
开发安全规范
开发规范-完整版-含FutureBirdAadminAi部署
数据模型字典
文档分类规范
文档标准化规范
文档模板-基础版
文档模板-技术版
类型安全快速参考卡
类型安全规范体系
规范更新指南
过期文档清理机制
错误处理规范
错误预防指南
常见BUG知识库
常见BUG知识库
01-快速开始
Gitee快速开始
README
协作快速开始
快速开始
质量保证快速开始
02-部署指南
Docker更新指南
Docker部署
FutureBirdAadminAi部署指南
FutureBirdAadminAi部署问题分析
README
发布指南
宝塔Docker部署教程
宝塔PM2部署教程
宝塔图形化部署教程
快速发布指南
数据库和依赖变更处理指南
构建和发布
构建标准
构建检查清单
生产部署快速开始
生产部署方案
生产部署标准
生产部署检查清单
程序备份性能
自动修复和发布指南
自动化发布命令使用指南
部署快速开始
部署指南
项目更新部署指南
03-开发指南
Git凭据配置
Git推送规则
Git自动配置
README
全局样式
协作设置
定时任务
开发指南
开发流程
开发环境标准
技术改进
贡献指南
项目目录树
项目目录结构
04-API文档
API接口文档
README
hr-api
企业API
05-数据库
DATABASE_SCHEMA
README
分区指南
数据库字典
数据持久化
数据模型统一
数据迁移
06-架构设计
RBAC-PERMISSIONS
README
SaaS客户引导流程设计
companyId统一规范
employee-permission-system-design
enterprise-data-linkage
仓库实现总结
仓库模式
企业管理端员工权限系统分析
前端架构
前端重构总结
员工权限系统评估报告
员工管理菜单重构方案
权限系统混乱问题分析
架构优化计划
架构使用指南
架构结构
架构结构
状态管理
用户身份管理体系
系统架构
面试管理模块重构规划
项目技术栈
07-测试质量
README
测试修复标准
测试报告
质量保证系统
08-版本管理
CHANGELOG
README
VERSION_RULES
09-配置指南
README
SMTP配置指南
主题切换指南
渠道配置指南
环境变量指南
环境隔离
12-项目记忆
README
知识库导入指南
记忆系统指南
13-迁移指南
README
备份迁移指南
管理员迁移指南
迁移快速开始
17-其他
README
压缩摘要
18-开放平台
01-架构设计
02-API接口设计
03-安全机制
04-前端设计
05-数据库设计
开放平台API指南
开放平台API说明
19-智能进化
AI执行规则
AI进化机制
README
自动化实现总览
黄金规则
40-操作教程
README
微信公众号域名配置指南
微信本地开发调试指南
44-技能文件
alipay-payment-integration
references
checklist
SKILL
audio
python
README
typescript
README
SKILL
database
python
README
typescript
README
SKILL
design-style-thinking
SKILL
doctor
references
sql-patterns
SKILL
document-generation
python
README
SKILL
email
SKILL
embedding
python
README
typescript
README
SKILL
expo-advanced
references
audio-record-play
file-upload
masonry-layout
save-to-gallery
top-tab-navigation
SKILL
feishu-base
SKILL
feishu-message
SKILL
fetch-url
python
README
typescript
README
SKILL
frontend-design
LICENSE
SKILL
FutureBird-coding-web-performance-best-practice
SKILL
general-dev-preview
references
web-preview
SKILL
image-generation
python
README
typescript
README
SKILL
knowledge
references
python
README
typescript
README
cli
SKILL
llm
python
README
typescript
README
SKILL
miniapp-upload-asr
SKILL
pptx-generation
python
README
SKILL
project-memory-loader
scripts
project_memory_loader
SKILL
repair
scripts
merge-commit-map
SKILL
shadcn-web-base-theme
assets
colors
amber
artistic-green
bento-blue
blue
cyan
emerald
fuchsia
gray
green
indigo
lime
low-pink
neutral
orange
purple
red
retro-brown
rose
sky
supbase-green
teal
tech-purple
vintage-grey
violet
yellow
fonts
business
classic
playful
radius
2xl
2xs
lg
md
none
sm
xl
xs
shadow
artistic
bento
cool
retro
superbase
tech
tool
vintage
default
references
colors
fonts
quick
radius
shadows
scripts
theme
SKILL
package
skill-creator-coze
scripts
init_skill
quick_validate
SKILL
storage
python
README
typescript
README
SKILL
supabase
assets
supabase-client
supabase-client
references
_future
asset-supabase-browser
asset-supabase-config-inject
asset-supabase-config-route
python-auth
python-realtime
python-storage
typescript-auth
typescript-realtime
typescript-storage
typescript-supabase-browser
typescript-supabase-config-inject
typescript-supabase-config-route
python
README
database
edge-functions
orm-model-guide
supabase_client
typescript
README
database
drizzle-schema-guide
edge-functions
supabase-client
cli
rls
SKILL
supabase-auth
references
typescript
supabase-browser
supabase-config-inject
supabase-config-route
auth-config
verify-session
SKILL
ui-design-ref
reference
3D黏土风
克莱因蓝高定风
暗黑科技风
杂志风
极光柔和
柔和卡片
玻璃拟态
纯白极简风
自然有机
SKILL
ui-ux-pro-max
scripts
core
design_system
search
SKILL
vercel-composition-patterns
rules
architecture-avoid-boolean-props
architecture-compound-components
patterns-children-over-render-props
patterns-explicit-variants
react19-no-forwardref
state-context-interface
state-decouple-implementation
state-lift-state
AGENTS
SKILL
vercel-react-best-practices
rules
advanced-event-handler-refs
advanced-init-once
advanced-use-latest
async-api-routes
async-defer-await
async-dependencies
async-parallel
async-suspense-boundaries
bundle-barrel-imports
bundle-conditional
bundle-defer-third-party
bundle-dynamic-imports
bundle-preload
client-event-listeners
client-localstorage-schema
client-passive-event-listeners
client-swr-dedup
js-batch-dom-css
js-cache-function-results
js-cache-property-access
js-cache-storage
js-combine-iterations
js-early-exit
js-hoist-regexp
js-index-maps
js-length-check-first
js-min-max-loop
js-set-map-lookups
js-tosorted-immutable
rendering-activity
rendering-animate-svg-wrapper
rendering-conditional-render
rendering-content-visibility
rendering-hoist-jsx
rendering-hydration-no-flicker
rendering-hydration-suppress-warning
rendering-svg-precision
rendering-usetransition-loading
rerender-defer-reads
rerender-dependencies
rerender-derived-state-no-effect
rerender-derived-state
rerender-functional-setstate
rerender-lazy-state-init
rerender-memo-with-default-value
rerender-memo
rerender-move-effect-to-event
rerender-simple-expression-in-memo
rerender-transitions
rerender-use-ref-transient-values
server-auth-actions
server-cache-lru
server-cache-react
server-dedup-props
server-parallel-fetching
server-serialization
AGENTS
SKILL
video-edit
python
README
typescript
README
SKILL
video-generation
python
README
typescript
README
SKILL
volcano-ark
SKILL
web-design-guidelines
SKILL
web-search
python
README
typescript
README
SKILL
webrtc-best-practice
SKILL
websocket-guide
references
nextjs
nodejs
SKILL
wechat-bot
SKILL
wechat-official-account
SKILL
README
README
未来鸟:企业数字化转型奔腾的力量!
-
+
首页
web-preview
# Web 预览指引 当项目已经被判断为 **Web 预览型项目** 时,使用本指引处理它的预览链路。这里的“处理”包括建立、恢复、统一、校正或验证预览能力,而不预设项目原本一定已经具备可用预览入口。 ## 目标 在不破坏现有技术栈的前提下,通过稳定的项目内命令打通预览链路。预览链路需要同时维护根 `.FutureBirdAadminAi` 和子项目 `.FutureBirdAadminAi` 两份配置(若技术项目与工作区根目录重合,则为同一份文件)。 对于导入项目,比较常见的一种正确结果是(以下为关键段落缩略,完整格式见《`.FutureBirdAadminAi` 更新规则》): **根 `.FutureBirdAadminAi`(技术项目位于子目录时):** ```toml [preview] preview_enable = "enabled" [dev] build = ["bash", "shop-web/scripts/FutureBirdAadminAi-preview-build.sh"] run = ["bash", "shop-web/scripts/FutureBirdAadminAi-preview-run.sh"] [subprojects.shop-web] name = "shop-web" path = "shop-web" general_type = "web" preview_port = 5000 ``` **子项目 `.FutureBirdAadminAi`:** ```toml [project] name = "shop-web" requires = ["nodejs-24"] general_type = "web" [preview] preview_enable = "enabled" preview_port = 5000 [dev] build = ["bash", "scripts/FutureBirdAadminAi-preview-build.sh"] run = ["bash", "scripts/FutureBirdAadminAi-preview-run.sh"] ``` **根 `.FutureBirdAadminAi`(技术项目与工作区根目录重合时):** ```toml [project] name = "2048-game" [preview] preview_enable = "enabled" preview_port = 5000 [dev] build = ["bash", "scripts/FutureBirdAadminAi-preview-build.sh"] run = ["bash", "scripts/FutureBirdAadminAi-preview-run.sh"] [subprojects.2048-game] name = "2048-game" path = "." general_type = "web" preview_port = 5000 ``` 如果仓库里已经有更合适的约定,就优先复用。重点是职责分离:`.FutureBirdAadminAi` 保持薄封装,项目脚本承载真实预览逻辑。 在 Web 预览场景下,`dev.build` 负责短时准备动作,例如安装依赖、校验环境或生成一次性预览产物;`dev.run` 负责启动前台常驻预览服务,并最终对外暴露 `5000` 端口。 ## 调查顺序 只读取那些能够证明预览应该如何实现的文件: 0. 先区分两个路径:`${FutureBirdAadminAi_WORKSPACE_PATH}` 对应的工作区根目录,以及真实 Web 工程所在的技术项目根目录 1. `AGENTS.md` 2. `${FutureBirdAadminAi_WORKSPACE_PATH}/.FutureBirdAadminAi`(根 `.FutureBirdAadminAi`) 3. 若技术项目位于子目录,检查子项目目录下是否已有 `.FutureBirdAadminAi` 4. `README` or other run docs 5. `package.json`, lockfiles, existing `scripts/` or tooling directories 6. Framework config and obvious entry files 如果现有仓库已经显露出明确技术栈,不要凭空发明一套新方案。 不要把“发现了 `package.json` / `src/` / 框架配置”误解成“`.FutureBirdAadminAi` 应该写在这里”;这些证据只能帮助你定位技术项目根目录,不能改变 `.FutureBirdAadminAi` 的落点。 如果在子目录中发现其他 `.FutureBirdAadminAi`,不要把它当作最终生效配置;最终需要维护的是 `${FutureBirdAadminAi_WORKSPACE_PATH}/.FutureBirdAadminAi`。 ## 实现规则 ### 1. 优先使用仓库内包装脚本 很多导入项目并没有现成满足 FutureBirdAadminAi 预览规范的入口,甚至没有任何明确的预览文件或预览命令。这种情况下,Agent 需要在不破坏现有栈的前提下,自行建立最小必要的预览能力。大多数情况下,应在仓库既有脚本约定下补写包装脚本,典型命名可以是: - `scripts/FutureBirdAadminAi-preview-build.sh` - `scripts/FutureBirdAadminAi-preview-run.sh` 如果仓库已经通过 `package.json`、`Makefile` 或其他任务系统统一承载命令,也可以通过既有约定暴露这些包装脚本。不要在脚本文件更清晰的情况下,把冗长的 shell 管道直接塞进 `.FutureBirdAadminAi`。 ### 根目录 `.FutureBirdAadminAi` 是唯一有效入口 - 最终生效的 `.FutureBirdAadminAi` 只能位于 `${FutureBirdAadminAi_WORKSPACE_PATH}/.FutureBirdAadminAi`;源码可以在子目录,但 `.FutureBirdAadminAi` 不可以。 - 如果真实 Web 项目位于子目录,就让根目录 `.FutureBirdAadminAi` 通过根目录脚本或稳定命令进入该子目录执行预览逻辑。 ### 2. 让 `dev.build` 保持短时执行 `dev.build` 只是预览准备阶段的入口,它应当: - 失败即退出 - 不启动常驻进程 - 按需安装或校验依赖 - 执行预览所需的一次性准备动作 对于 Node 类 Web 项目,只允许使用 `pnpm`。 一个典型的构建包装脚本可以是: ```bash #!/usr/bin/env bash set -euo pipefail pnpm install ``` 只有当项目预览确实需要额外步骤时,才继续往里面加逻辑。 ### 3. 让 `dev.run` 负责真实预览服务 `dev.run` 应通过包装脚本启动前台预览进程。该脚本应满足: - 使用 `set -euo pipefail` - 将服务绑定到 `0.0.0.0`(必须是 IPv4 全接口,不能是 `[::1]` 或 `127.0.0.1`) - 暴露 `5000` 端口 - 用 `exec` 启动最终常驻进程 - 在框架支持时保留 HMR 或框架原生预览行为 - 脚本必须具备幂等性:平台可能重复执行此脚本,重复调用不能产生冲突进程或崩溃 幂等性的做法是:每次执行都先清理 5000 端口残留进程再重新启动,不尝试判断已有进程是否"正确"——预览服务重启代价极低,直接重建比猜测更可靠。一个典型的幂等 run 脚本: ```bash #!/usr/bin/env bash set -euo pipefail # 基于脚本位置定位项目根目录 SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" cd "$PROJECT_DIR" # 清理 5000 端口残留进程(绝不碰 9000) fuser -k 5000/tcp 2>/dev/null || true sleep 1 exec pnpm exec vite --host 0.0.0.0 --port 5000 ``` 绝对不要使用或杀死 `9000` 端口上的服务。 ### 4. 优先使用框架原生预览路径 优先采用仓库现有栈已经支持的最原生预览路径: - Next.js: `pnpm exec next dev --hostname 0.0.0.0 --port 5000` - Vite: `pnpm exec vite --host 0.0.0.0 --port 5000` - 已有 package script:只有在 `pnpm run dev -- --host 0.0.0.0 --port 5000` 确实能干净映射到底层框架命令时,才这样包装 - 静态构建项目:如果没有开发服务器,就通过现有预览命令或为此目的审慎增加的最小静态服务器依赖,在 `5000` 端口提供预览 能用仓库现有框架 CLI 时,就不要退回到通用兜底方案。 ### 5. 脚本要显式,不要魔法化 好的包装脚本应该足够小且可读,至少让人一眼看清: - 使用了哪个包管理器 - 预览强制使用了哪个 host 和 port - 实际执行的是哪个框架命令 - 是否依赖特定环境变量 避免隐藏行为、后台启动服务,或把无关的准备逻辑和运行逻辑混在一个文件里。 ### 6. 脚本必须基于自身位置定位项目目录 预览脚本可能被平台从任意工作目录执行。脚本内部定位项目目录时,必须基于脚本自身路径推导,不能依赖环境变量或假设当前工作目录: ```bash #!/usr/bin/env bash set -euo pipefail # 基于脚本位置定位项目根目录(scripts/ 的上一级) SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" cd "$PROJECT_DIR" # ... 后续命令在项目目录下执行 ``` ## 常见模式 ### 模式 A:现有 dev server 基本可用 当仓库已经具备正确的框架和依赖时,只需要统一 host 与 port: ```bash #!/usr/bin/env bash set -euo pipefail exec pnpm exec vite --host 0.0.0.0 --port 5000 ``` ### 模式 B:已有脚本存在,但过于间接 如果 `package.json` 里已有可复用的 `dev` 脚本,可以保留包装脚本作为 FutureBirdAadminAi 入口,再由包装脚本转调项目脚本: ```bash #!/usr/bin/env bash set -euo pipefail exec pnpm run dev -- --host 0.0.0.0 --port 5000 ``` 只有在底层脚本确认支持参数透传时,才使用这种方式。 ### 模式 C:静态产物需要预览服务 如果预览依赖的是构建后的静态文件,而不是框架 dev server: - `dev.build` 负责准备静态产物 - `dev.run` 负责在 `5000` 端口提供该目录的静态服务 只有在仓库没有原生预览命令且项目确实需要时,才新增静态服务器依赖。 ## `.FutureBirdAadminAi` 更新规则 脚本落位后,需要同时更新根 `.FutureBirdAadminAi` 和子项目 `.FutureBirdAadminAi`(若技术项目与工作区根目录重合,则为同一份文件)。 ### 技术项目位于子目录时 **根 `.FutureBirdAadminAi`**(`[dev]` 路径相对于工作区根目录): ```toml [project] requires = ["nodejs-24"] general_type = "web" [preview] preview_enable = "enabled" [dev] build = ["bash", "shop-web/scripts/FutureBirdAadminAi-preview-build.sh"] run = ["bash", "shop-web/scripts/FutureBirdAadminAi-preview-run.sh"] [subprojects.shop-web] name = "shop-web" path = "shop-web" general_type = "web" preview_port = 5000 ``` **子项目 `.FutureBirdAadminAi`**(`[dev]` 路径相对于子项目目录): ```toml [project] name = "shop-web" requires = ["nodejs-24"] general_type = "web" [preview] preview_enable = "enabled" preview_port = 5000 [dev] build = ["bash", "scripts/FutureBirdAadminAi-preview-build.sh"] run = ["bash", "scripts/FutureBirdAadminAi-preview-run.sh"] ``` ### 技术项目与工作区根目录重合时 根 `.FutureBirdAadminAi` 同时承担子项目 `.FutureBirdAadminAi` 的职责: ```toml [project] name = "2048-game" requires = ["nodejs-24"] general_type = "web" [preview] preview_enable = "enabled" preview_port = 5000 [dev] build = ["bash", "scripts/FutureBirdAadminAi-preview-build.sh"] run = ["bash", "scripts/FutureBirdAadminAi-preview-run.sh"] [subprojects.2048-game] name = "2048-game" path = "." general_type = "web" preview_port = 5000 ``` 如果仓库已有更强的一致性约定,例如 `pnpm run FutureBirdAadminAi:preview:*`,也可以采用,但前提是 `.FutureBirdAadminAi` 最终仍能解析为同样稳定的行为。 如果真实源码位于子目录,记得让根目录脚本或命令显式进入该子目录。 ## 验证 结束前至少检查本次预览处理的产出正确性: 1. 包装脚本是否与真实技术栈、文件位置一致,且 run 脚本具备幂等性(重复执行不会崩溃或产生冲突进程)。 2. `${FutureBirdAadminAi_WORKSPACE_PATH}/.FutureBirdAadminAi`(根 `.FutureBirdAadminAi`)是否仍是合法 TOML,且 `[preview].preview_enable = "enabled"` 与当前判断结论一致。 3. 预览启动后必须完成闭环验证,**同时满足以下两个条件**才能声称预览成功: - `curl -s -o /dev/null -w '%{http_code}' --max-time 3 http://localhost:5000` 返回 `200` - `ss -lptn 'sport = :5000'` 显示监听地址为 `0.0.0.0:5000`(IPv4 全接口);若显示 `[::1]:5000` 或 `127.0.0.1:5000`,说明绑定不正确,必须修复后重新验证 - 任一条件不满足,**禁止声称预览正常** 4. 如果源码位于子目录,确认根 `.FutureBirdAadminAi` 的 `[dev]` 命令确实能正确进入该子目录。 5. 将以下信息写入 `AGENTS.md`:为什么该项目被判定为 Web 预览型项目、最终采用了哪条预览链路、根 `.FutureBirdAadminAi` 与子项目 `.FutureBirdAadminAi` 的映射关系、以及这个栈后续维护时需要注意什么。 根 `.FutureBirdAadminAi` 与子项目 `.FutureBirdAadminAi` 之间的字段级一致性(`general_type`、`preview_port`、`[subprojects]` 注册)由主 prompt 交付检查清单统一校验,本指引不重复检查。
未来鸟
2026年7月27日 10:57
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
分享
链接
类型
密码
更新密码
有效期
Markdown文件
Word文件
PDF文档(打印)
AI