Skip to content

build - 构建命令

build 命令是 Claude Code 的核心构建工具,负责将项目代码编译、优化和打包成可部署的格式。

命令概述

build 命令支持多种项目类型的构建,包括前端应用、后端服务、移动应用等,并提供丰富的配置选项来满足不同的构建需求。

基本用法

标准构建

bash
claude build

指定环境构建

bash
# 开发环境构建
claude build --env development

# 生产环境构建  
claude build --env production

# 测试环境构建
claude build --env test

指定平台构建

bash
# Web 应用构建
claude build --platform web

# 移动应用构建
claude build --platform mobile

# 桌面应用构建
claude build --platform desktop

# 多平台构建
claude build --platform web,mobile,desktop

配置选项

环境配置

选项类型默认值描述
--envstringproduction构建环境
--modestringbuild构建模式
--configstringclaude.config.js配置文件路径

优化配置

选项类型默认值描述
--minifybooleantrue是否压缩代码
--treeshakebooleantrue是否启用树摇优化
--sourcemapbooleanfalse是否生成源码映射
--analyzebooleanfalse是否分析构建产物

输出配置

选项类型默认值描述
--outdirstringdist输出目录
--formatstringesm输出格式
--targetstringes2020目标环境

使用示例

1. Web 应用构建

React 应用

bash
# 基础构建
claude build --platform web --env production

# 带分析的构建
claude build --platform web --analyze --sourcemap

# 自定义输出目录
claude build --platform web --outdir build

Vue 应用

bash
# 开发构建
claude build --platform web --env development --sourcemap

# 生产构建
claude build --platform web --env production --minify

构建配置示例

javascript
// claude.config.js
export default {
  build: {
    web: {
      entry: './src/main.js',
      outDir: 'dist',
      minify: true,
      sourcemap: process.env.NODE_ENV === 'development',
      rollupOptions: {
        output: {
          manualChunks: {
            vendor: ['react', 'react-dom'],
            ui: ['@mui/material', '@mui/icons-material']
          }
        }
      }
    }
  }
};

2. 移动应用构建

React Native

bash
# iOS 构建
claude build --platform mobile --target ios --env production

# Android 构建  
claude build --platform mobile --target android --env production

# 同时构建 iOS 和 Android
claude build --platform mobile --target ios,android

Flutter

bash
# Debug 构建
claude build --platform mobile --mode debug

# Release 构建
claude build --platform mobile --mode release --target-platform android-arm64

移动构建配置

javascript
// claude.config.js
export default {
  build: {
    mobile: {
      reactNative: {
        ios: {
          bundleIdentifier: 'com.example.app',
          codeSigningIdentity: 'iPhone Distribution'
        },
        android: {
          packageName: 'com.example.app',
          keystore: './android/app/release.keystore'
        }
      },
      flutter: {
        targetPlatform: 'android-arm64',
        buildMode: 'release',
        flavor: 'production'
      }
    }
  }
};

3. 后端服务构建

Node.js 服务

bash
# 标准构建
claude build --platform server --env production

# 带 Docker 的构建
claude build --platform server --docker --registry myregistry.com

构建配置

javascript
// claude.config.js
export default {
  build: {
    server: {
      entry: './src/server.js',
      outDir: 'dist',
      target: 'node16',
      externals: ['express', 'mongoose'],
      docker: {
        baseImage: 'node:16-alpine',
        workdir: '/app',
        port: 3000
      }
    }
  }
};

4. 桌面应用构建

Electron 应用

bash
# 当前平台构建
claude build --platform desktop --env production

# 跨平台构建
claude build --platform desktop --target win32,darwin,linux

构建配置

javascript
// claude.config.js
export default {
  build: {
    desktop: {
      electron: {
        main: './src/main.js',
        renderer: './src/renderer.js',
        targets: [
          {
            name: 'win32',
            arch: ['x64']
          },
          {
            name: 'darwin', 
            arch: ['x64', 'arm64']
          },
          {
            name: 'linux',
            arch: ['x64']
          }
        ]
      }
    }
  }
};

构建流程

标准构建流程

具体执行步骤

1. 预构建阶段

bash
# 环境检查
 检查 Node.js 版本
 检查依赖完整性  
 验证配置文件
 清理输出目录

2. 编译阶段

bash
# 代码编译
 TypeScript 编译
 JSX 转换
 CSS 预处理
 资源文件处理

3. 优化阶段

bash
# 代码优化
 代码压缩 (Terser/SWC)
 树摇优化 (Tree Shaking)
 代码分割 (Code Splitting)
 资源优化 (图片压缩等)

4. 打包阶段

bash
# 输出生成
 生成构建文件
 创建清单文件
 生成源码映射
 构建报告输出

构建分析

启用构建分析

bash
# 基础分析
claude build --analyze

# 详细分析
claude build --analyze --verbose

# 生成报告文件
claude build --analyze --report bundle-report.html

分析报告内容

包大小分析

Bundle Analysis Report
=====================

 Total Bundle Size: 2.3 MB (gzipped: 654 KB)

 Chunk Analysis:
├── main.js      1.2 MB (52.2%)
├── vendor.js    800 KB (34.8%)  
├── runtime.js   200 KB (8.7%)
└── styles.css   100 KB (4.3%)

 Optimization Suggestions:
• Consider code splitting for main.js
• vendor.js contains unused lodash functions
• 3 duplicate dependencies detected

性能指标

Performance Metrics
==================

⏱  Build Time: 12.3s
 Compilation: 8.1s (65.9%)
 Optimization: 3.2s (26.0%)
 Generation: 1.0s (8.1%)

 Improvements vs Previous Build:
• Bundle size: -15.2% 
• Build time: -8.7%
• Gzip size: -12.4%

构建问题排查

常见构建错误

1. 依赖问题

bash
Error: Module not found: Can't resolve 'some-package'

# 解决方案
npm install some-package
# 或
claude build --install-missing

2. 内存不足

bash
Error: JavaScript heap out of memory

# 解决方案
NODE_OPTIONS="--max-old-space-size=8192" claude build
# 或配置文件中设置

3. 类型错误

bash
Error: Type 'string' is not assignable to type 'number'

# 解决方案
claude build --skip-type-check
# 或修复类型错误

调试模式

bash
# 启用详细日志
claude build --verbose

# 启用调试模式
claude build --debug

# 保留临时文件
claude build --keep-temp

性能优化建议

1. 增量构建

javascript
// claude.config.js
export default {
  build: {
    cache: true,
    incremental: true,
    cacheDirectory: '.claude/cache'
  }
};

2. 并行构建

javascript
// claude.config.js
export default {
  build: {
    parallel: true,
    workers: 4, // CPU 核心数
    workerTimeout: 30000
  }
};

3. 构建优化

javascript
// claude.config.js
export default {
  build: {
    optimization: {
      minimize: true,
      minimizer: 'swc', // 使用 SWC 替代 Terser
      splitChunks: {
        chunks: 'all',
        cacheGroups: {
          vendor: {
            test: /[\\/]node_modules[\\/]/,
            name: 'vendors',
            chunks: 'all'
          }
        }
      }
    }
  }
};

高级配置

多环境配置

javascript
// claude.config.js
export default {
  build: {
    // 开发环境
    development: {
      minify: false,
      sourcemap: true,
      watch: true
    },
    
    // 测试环境  
    test: {
      minify: true,
      sourcemap: true,
      coverage: true
    },
    
    // 生产环境
    production: {
      minify: true,
      sourcemap: false,
      optimize: true
    }
  }
};

自定义构建插件

javascript
// plugins/custom-build-plugin.js
export default function customBuildPlugin(options) {
  return {
    name: 'custom-build',
    setup(build) {
      build.onStart(() => {
        console.log('开始自定义构建...');
      });
      
      build.onEnd((result) => {
        console.log('构建完成,用时:', result.duration);
      });
    }
  };
}

// claude.config.js
import customBuildPlugin from './plugins/custom-build-plugin.js';

export default {
  build: {
    plugins: [
      customBuildPlugin({
        // 插件配置
      })
    ]
  }
};

构建钩子

javascript
// claude.config.js
export default {
  build: {
    hooks: {
      'build:before': async () => {
        console.log('构建前置处理...');
        // 清理缓存、生成版本文件等
      },
      
      'build:after': async (result) => {
        console.log('构建后置处理...');
        // 上传文件、发送通知等
      },
      
      'build:error': async (error) => {
        console.log('构建失败处理...');
        // 错误上报、恢复操作等
      }
    }
  }
};

相关命令

  • analyze - 代码分析命令
  • test - 测试执行命令
  • deploy - 部署命令
  • dev - 开发服务器命令

最佳实践

1. 环境分离

  • 为不同环境使用不同的构建配置
  • 通过环境变量控制构建行为
  • 确保生产构建的安全性

2. 性能优化

  • 启用增量构建减少构建时间
  • 合理配置代码分割
  • 使用现代化的构建工具

3. 质量保证

  • 在构建前执行代码检查
  • 生成构建报告用于分析
  • 设置构建失败的自动回滚

build 命令 - 将代码转化为产品

Claude Code 使用指南