码巢引擎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
未来鸟:企业数字化转型奔腾的力量!
-
+
首页
开发环境标准
> **文档版本**: v1.0.0 > **创建日期**: 2026-02-12 > **最后更新**: 2026-02-12 > **维护人**: 未来鸟FutureBird码巢企业服务引擎开发组 > **状态**: [最新] > **搜索标签**: 开发环境, 环境配置, 本地环境, 开发配置 --- # 开发环境 vs 构建环境标准 ## 核心原则 **所有的开发和修复都必须以构建和生产环境标准为基础** > "如果代码在构建环境失败,那么在开发环境也应该失败,而不是相反。" --- ## 问题分析 ### 错误的开发模式 ``` 开发环境: TypeScript 类型错误 → 忽略 → 继续开发 ↓ ❌ 错误进入代码库 ↓ 构建环境: 30+ 类型错误 → 构建失败 → 🔧 紧急修复 ``` ### 正确的开发模式 ``` 开发环境: TypeScript 类型错误 → 立即修复 → 继续开发 ↓ ✅ 代码始终保持高质量 ↓ 构建环境: 0 类型错误 → ✅ 构建成功 → 🚀 可以部署 ``` --- ## 为什么会积累这么多错误? ### 1. 开发环境配置不严格 ```json // 可能的问题配置 { "compilerOptions": { "strict": false, // ❌ 未启用严格模式 "noUnusedLocals": false, // ❌ 不检查未使用的变量 "noUnusedParameters": false, // ❌ 不检查未使用的参数 "noImplicitAny": false // ❌ 允许隐式 any } } ``` **问题:** 开发时看不到类型错误,但构建时检查严格。 ### 2. Webpack Dev Server 的容错性 ```javascript // webpack 开发服务器可能: - 允许一些类型错误运行 - 只在控制台显示警告,不阻止编译 - 使用不同的 babel 配置绕过类型检查 ``` **问题:** 开发时能跑,但构建时失败。 ### 3. 缺少持续类型检查 ```bash # 应该有,但没有 pnpm type-check # ❌ 从不运行 pnpm build # ❌ 只在部署时运行 ``` **问题:** 错误在开发时积累,构建时爆发。 ### 4. 编辑器配置不严格 ```json // .vscode/settings.json - 可能缺失的配置 { "typescript.tsdk": "node_modules/typescript/lib", "typescript.tsc.autoDetect": "on", // ✅ 自动检测 "typescript.preferences.includePackageJsonAutoImports": "auto" // 缺少: // "typescript.enablePromptUseWorkspaceTsdk": true, // "typescript.suggest.autoImports": true } ``` **问题:** 编辑器中看不到所有类型错误。 --- ## 正确的开发环境配置 ### 1. TypeScript 配置 ```json // tsconfig.json - 严格配置 { "compilerOptions": { "target": "ES2017", "lib": ["dom", "dom.iterable", "esnext"], // 🔴 必须启用严格模式 "strict": true, // 🔴 不跳过类型检查(性能换安全) "skipLibCheck": false, // 🔴 检查未使用的变量和参数 "noUnusedLocals": true, "noUnusedParameters": true, // 🔴 不允许隐式 any "noImplicitAny": true, // 🔴 检查隐式返回 "noImplicitReturns": true, // 🔴 检查严格的空值检查 "strictNullChecks": true, // 🔴 检查严格属性初始化 "strictPropertyInitialization": true, "noEmit": true, "esModuleInterop": true, "module": "esnext", "moduleResolution": "bundler", "resolveJsonModule": true, "isolatedModules": true, "jsx": "react-jsx", "incremental": true, "plugins": [ { "name": "next" } ], "paths": { "@/*": ["./src/*"] } }, "include": [ "next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts" ], "exclude": [ "node_modules", "drizzle.config.ts", "scripts/**" ] } ``` ### 2. Webpack 配置 ```javascript // next.config.js - 开发时也进行类型检查 module.exports = { webpack: (config) => { // 开发模式也运行 TypeScript 检查 if (process.env.NODE_ENV !== 'production') { config.module.rules.push({ test: /\.(ts|tsx)$/, exclude: /node_modules/, use: { loader: 'ts-loader', options: { transpileOnly: false, // 🔴 不跳过类型检查 happyPackMode: false, }, }, }); } return config; }, }; ``` ### 3. VSCode 配置 ```json // .vscode/settings.json { // TypeScript 配置 "typescript.tsdk": "node_modules/typescript/lib", "typescript.enablePromptUseWorkspaceTsdk": true, "typescript.tsc.autoDetect": "on", "typescript.preferences.importModuleSpecifier": "relative", "typescript.preferences.includePackageJsonAutoImports": "auto", "typescript.suggest.autoImports": true, "typescript.suggest.completeFunctionCalls": true, // 🔴 启用所有类型检查 "typescript.tsserver.experimental.enableProjectDiagnostics": true, // 编辑器配置 "editor.codeActionsOnSave": { "source.fixAll.eslint": true, "source.organizeImports": true }, "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", // 🔴 显示所有问题 "problems.showCurrentInStatus": true, "problems.sortOrder": "severity" } ``` ### 4. Package.json Scripts ```json { "scripts": { // 🔴 开发前检查 "pre-dev-check": "pnpm type-check", "dev": "pnpm pre-dev-check && pnpm next dev", // 🔴 类型检查(必须通过) "type-check": "tsc --noEmit", // 🔴 详细类型检查 "type-check:verbose": "tsc --noEmit --pretty false", // 🔴 监听模式类型检查 "type-check:watch": "tsc --noEmit --watch", // 🔴 构建检查(必须通过) "build": "pnpm type-check && next build", // 🔴 启动前检查 "pre-start": "pnpm type-check", "start": "pnpm pre-start && next start", // 🔴 提交前检查 "pre-commit": "pnpm type-check && pnpm lint", // 🔴 推送前检查 "pre-push": "pnpm build", // 🔴 只检查特定文件 "type-check:file": "tsc --noEmit", // 🔴 检查所有文件 "type-check:all": "tsc --noEmit" } } ``` --- ## 强制执行机制 ### 1. Git Hooks ```bash # .husky/pre-commit #!/bin/bash echo "🔍 运行类型检查..." pnpm type-check || { echo "" echo "❌ 类型检查失败!" echo "请修复类型错误后再提交。" echo "" echo "运行以下命令查看详细错误:" echo " pnpm type-check:verbose" exit 1 } echo "✅ 类型检查通过" ``` ```bash # .husky/pre-push #!/bin/bash echo "🏗️ 运行构建检查..." pnpm build || { echo "" echo "❌ 构建失败!" echo "请修复错误后再推送。" exit 1 } echo "✅ 构建成功" ``` ### 2. CI/CD 配置 ```yaml # .github/workflows/ci.yml name: CI - 构建环境标准检查 on: push: branches: [main, develop] pull_request: branches: [main, develop] jobs: # 🔴 类型检查 type-check: name: 类型检查 runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: 安装依赖 run: pnpm install - name: 类型检查 run: pnpm type-check - name: 详细错误报告 if: failure() run: pnpm type-check:verbose # 🔴 构建测试 build: name: 构建测试 runs-on: ubuntu-latest needs: type-check steps: - uses: actions/checkout@v3 - name: 安装依赖 run: pnpm install - name: 构建 run: pnpm build - name: 检查构建产物 run: | if [ ! -d ".next" ]; then echo "❌ 构建产物不存在" exit 1 fi # 🔴 ESLint 检查 lint: name: 代码检查 runs-on: ubuntu-latest needs: type-check steps: - uses: actions/checkout@v3 - name: 安装依赖 run: pnpm install - name: ESLint 检查 run: pnpm lint ``` ### 3. Pre-commit 检查脚本 ```bash #!/bin/bash # scripts/pre-commit-check.sh set -e # 遇到错误立即退出 echo "🔍 开始提交前检查..." # 1. 类型检查 echo "📝 检查 TypeScript 类型..." pnpm type-check || { echo "" echo "❌ TypeScript 类型检查失败!" echo "" echo "建议的修复步骤:" echo " 1. 查看详细错误:pnpm type-check:verbose" echo " 2. 修复类型错误" echo " 3. 重新检查:pnpm type-check" exit 1 } # 2. ESLint 检查 echo "🔍 检查代码风格..." pnpm lint || { echo "" echo "❌ ESLint 检查失败!" echo "" echo "建议的修复步骤:" echo " 1. 自动修复:pnpm lint --fix" echo " 2. 手动修复剩余错误" echo " 3. 重新检查:pnpm lint" exit 1 } # 3. 检查是否有未提交的更改 echo "📂 检查未提交的更改..." if [ -n "$(git diff --cached --name-only | grep -v package-lock.json)" ]; then echo "✅ 有文件待提交" else echo "⚠️ 没有文件待提交" fi echo "✅ 所有检查通过,可以提交" ``` --- ## 开发环境 vs 构建环境对比 | 检查项 | 开发环境 | 构建环境 | 一致性 | |--------|---------|---------|--------| | TypeScript 类型检查 | ✅ 严格 | ✅ 严格 | ✅ 一致 | | ESLint | ✅ 运行 | ✅ 运行 | ✅ 一致 | | 编译错误 | ✅ 阻止 | ✅ 阻止 | ✅ 一致 | | 警告级别 | ✅ 错误 | ✅ 错误 | ✅ 一致 | | 严格模式 | ✅ 启用 | ✅ 启用 | ✅ 一致 | --- ## 开发工作流程 ### 标准流程 ```bash # 1. 拉取最新代码 git pull # 2. 运行类型检查 pnpm type-check # 3. 启动开发服务器(已经做了类型检查) pnpm dev # 4. 修改代码 # - 编辑器实时显示类型错误 # - 立即修复看到的错误 # 5. 定期运行类型检查 pnpm type-check # 6. 提交前检查 pnpm pre-commit # 7. 提交 git add . git commit -m "feat: 新功能" # 8. 推送前检查 pnpm pre-push # 9. 推送 git push ``` ### 错误的流程(我们之前的方式) ```bash # ❌ 之前的错误流程 # 1. 修改代码 # - 忽略类型错误(红色波浪线) # - 继续编码 # 2. 提交代码 git add . git commit -m "fix: 修复" # 3. 推送 git push # 4. 部署 # - 构建失败 # - 发现 30+ 类型错误 # - 🔧 紧急修复 ``` --- ## 监控和报告 ### 1. 类型错误追踪 ```bash # 统计类型错误数量 pnpm type-check 2>&1 | grep -c "error TS" # 查看详细的类型错误 pnpm type-check:verbose # 监听模式 pnpm type-check:watch ``` ### 2. 构建报告 ```bash # 构建并生成报告 pnpm build --report # 检查构建产物 ls -lh .next/ # 检查页面生成 ls -lh .next/server/app/ ``` ### 3. 定期检查 ```bash # 每天早上运行 echo "📅 每日类型检查报告" pnpm type-check # 每周五下午运行 echo "📊 周报:类型错误统计" pnpm type-check:verbose | grep "error TS" | wc -l ``` --- ## 快速参考 ### 必须的命令 ```bash # 🔴 开发前 pnpm type-check # 必须通过 # 🔴 提交前 pnpm pre-commit # 必须通过 # 🔴 推送前 pnpm build # 必须通过 # 🔴 部署前 pnpm build # 必须通过 ``` ### 常用命令 ```bash # 查看详细错误 pnpm type-check:verbose # 监听模式 pnpm type-check:watch # 检查特定文件 tsc --noEmit src/app/page.tsx # 自动修复 ESLint pnpm lint --fix ``` --- ## 总结 ### 核心原则 1. **开发环境 = 构建环境** - 开发时就应该看到和构建时一样的错误 - 不能有"开发时能用"的情况 2. **类型检查强制执行** - 开发时、提交前、推送前、部署前都必须检查 - 任何类型错误都不能进入代码库 3. **持续监控** - 定期运行类型检查 - 监听错误数量 - 生成错误报告 ### 关键机制 - ✅ TypeScript 严格配置 - ✅ Webpack 类型检查 - ✅ VSCode 严格配置 - ✅ Git Hooks 强制检查 - ✅ CI/CD 自动检查 - ✅ Pre-commit 脚本 ### 目标 **确保开发环境和构建环境的标准一致,不让任何错误进入生产环境。** > "如果代码在构建环境失败,那么在开发环境也应该失败。" > > "开发环境和构建环境的标准应该完全一致,不允许有任何差异。"
未来鸟
2026年7月27日 10:24
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
分享
链接
类型
密码
更新密码
有效期
Markdown文件
Word文件
PDF文档(打印)
AI