# code-builder > Build and package code for multiple languages. Use when: - Building executables ("Build my Rust app into an executable") - Creating Docker images ("Build a Docker image for my app") - Setting up CI/CD ("Configure build pipeline for CI") - Packaging for distribution ("Package my Python app for distribution") - Cross-platform builds ("Build for Windows, Linux, and macOS") - Native compilation ("Build native image with GraalVM") Supports: Rust (cargo, cross), Java (Maven/Gradle + GraalVM), Python (uv, PyInstaller), Node.js (pkg), TypeScript (esbuild), and Docker multi-stage builds. - Author: Kirky-X - Repository: Kirky-X/DevCraft-AI - Version: 20260115150227 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-07 - Source: https://github.com/Kirky-X/DevCraft-AI - Web: https://mule.run/skillshub/@@Kirky-X/DevCraft-AI~code-builder:20260115150227 --- --- name: code-builder description: | Build and package code for multiple languages. Use when: - Building executables ("Build my Rust app into an executable") - Creating Docker images ("Build a Docker image for my app") - Setting up CI/CD ("Configure build pipeline for CI") - Packaging for distribution ("Package my Python app for distribution") - Cross-platform builds ("Build for Windows, Linux, and macOS") - Native compilation ("Build native image with GraalVM") Supports: Rust (cargo, cross), Java (Maven/Gradle + GraalVM), Python (uv, PyInstaller), Node.js (pkg), TypeScript (esbuild), and Docker multi-stage builds. --- --- # Code Builder 技能使用指南 ## 快速开始 ### 第一步:运行环境检测 ```bash bash /home/dev/DevCraft-AI/skills/code-builder/scripts/detect-env.sh ``` 检测脚本会显示: - 已安装的编译工具和版本 - 可用的打包方式 - 建议安装的缺失工具 ### 第二步:选择打包方式 根据以下因素选择: - **输出类型**:可执行文件、库、容器镜像 - **目标平台**:Linux、Windows、macOS、跨平台 - **性能要求**:启动速度、运行性能 - **分发方式**:直接分发、商店分发 ### 第三步:执行打包 参考对应语言的参考文档获取详细步骤。 ## 支持的编程语言和打包方式 ### Rust | 打包方式 | 特点 | 适用场景 | |---------|------|---------| | cargo build | 标准构建,简单可靠 | 所有 Rust 项目 | | cargo-zigbuild | 跨平台编译,无需 Docker | 需要多平台支持 | | cross | Docker 容器化跨平台 | 复杂跨平台构建 | 参考:[rust.md](references/rust.md) ### Java | 打包方式 | 特点 | 适用场景 | |---------|------|---------| | JAR | 传统方式,需 JRE | 内部应用 | | GraalVM Native Image | 原生可执行文件,启动快 | 云原生、微服务 | | Docker | 容器化部署 | 生产环境 | 参考:[java.md](references/java.md) ### Python | 打包方式 | 特点 | 适用场景 | |---------|------|---------| | uv | 现代包管理,快速打包 | 项目分发 | | PyInstaller | 简单易用 | 桌面工具 | | PyOxidizer | 体积小、性能好 | 生产部署 | | Nuitka | 编译为原生代码 | 性能敏感 | 参考:[python.md](references/python.md) ### Node.js | 打包方式 | 特点 | 适用场景 | |---------|------|---------| | pkg | 跨平台二进制 | CLI 工具 | | nexe | 单一可执行文件 | 简单应用 | | Electron Forge | 桌面应用安装包 | 桌面应用 | | Docker | 容器化 | 服务器应用 | 参考:[nodejs.md](references/nodejs.md) ### TypeScript | 打包方式 | 特点 | 适用场景 | |---------|------|---------| | tsc | 官方编译器 | 类型检查 | | esbuild | 超快打包 | 开发构建 | | tsup | 零配置库打包 | 库开发 | | swc | Rust 编写 | 替代 tsc | 参考:[typescript.md](references/typescript.md) ### Docker | 打包方式 | 特点 | 适用场景 | |---------|------|---------| | 多阶段构建 | 减小镜像体积 | 生产部署 | | buildx | 多平台构建 | 跨平台分发 | 参考:[docker.md](references/docker.md) ## 配置文件模板 预设的配置文件模板位于 `assets/templates/` 目录: ``` assets/templates/ ├── rust/ │ └── Cargo.toml.template ├── java/ │ ├── pom.xml.template │ └── build.gradle.template ├── python/ │ └── pyproject.toml.template ├── nodejs/ │ └── package.json.template ├── typescript/ │ └── tsconfig.json.template └── docker/ ├── Dockerfile.multi-stage.template └── docker-compose.yml.template ``` ## 常见问题 ### 如何选择打包方式? - **需要快速打包** → 使用语言官方工具(cargo、mvn、uv) - **需要跨平台** → 使用 cross (Rust)、pkg (Node)、buildx (Docker) - **需要最佳性能** → 使用 GraalVM (Java)、Nuitka (Python) - **需要最小体积** → 使用 PyOxidizer、静态链接 ### 如何处理环境差异? 1. 运行 `detect-env.sh` 检测当前环境 2. 根据检测结果选择可用的工具 3. 参照文档中的工具安装部分补全依赖 ### 打包失败怎么办? 1. 检查依赖工具是否正确安装 2. 查看错误信息定位问题 3. 参照对应语言的故障排除部分 4. 确认源代码无语法错误 ## 工作流程 ``` ┌─────────────────────────────────────────────────────────┐ │ 运行环境检测 │ │ bash scripts/detect-env.sh │ └─────────────────┬───────────────────────────────────────┘ ▼ ┌─────────────────────────────────────────────────────────┐ │ 分析检测结果 │ │ - 已安装的工具 │ │ - 缺失的工具及安装建议 │ └─────────────────┬───────────────────────────────────────┘ ▼ ┌─────────────────────────────────────────────────────────┐ │ 选择打包方式 │ │ - 根据输出类型选择 │ │ - 根据目标平台选择 │ │ - 根据性能要求选择 │ └─────────────────┬───────────────────────────────────────┘ ▼ ┌─────────────────────────────────────────────────────────┐ │ 执行打包 │ │ - 读取对应语言参考文档 │ │ - 使用配置文件模板 │ │ - 执行打包命令 │ └─────────────────────────────────────────────────────────┘ ▼ ┌─────────────────────────────────────────────────────────┐ │ 验证输出 │ │ - 测试可执行文件 │ │ - 检查输出产物 │ │ - 部署分发 │ └─────────────────────────────────────────────────────────┘ ```