Skip to main content

🚀 AutoBuild

多语言自动化构建工具
支持前端 pnpm、后端 Go、Python,一键加速国内镜像

PyPI version Python versions License Build Status

特性快速开始IDE 集成安装详细文档许可证


✨ 特性

🎯 多语言支持

  • Go - 支持多入口编译、交叉编译
  • Python - 自动检测 Poetry/Setuptools/PDM
  • PNPM - 自动检测项目根目录

⚡ 镜像加速

  • 自动配置国内镜像源
  • 提升依赖下载速度
  • 支持切换多种镜像

🔧 开发者友好

  • 完整的类型注解
  • 统一的 API 接口
  • CLI 命令行支持

🚀 快速开始

安装

pip install multi-lang-build

# 升级到最新版本
pip install --upgrade multi-lang-build

# 配置国内镜像(可选)
multi-lang-build mirror set pip          # pip 使用清华镜像
multi-lang-build mirror set go           # Go 使用 goproxy.cn
multi-lang-build mirror set npm          # npm/pnpm 使用 npmmirror

1. 构建 Go 项目(支持多入口)

from multi_lang_build import GoCompiler
from pathlib import Path

compiler = GoCompiler()

# 指定入口文件编译(同一目录多 main 文件)
compiler.build_binary(
    source_dir=Path("./myproject"),
    output_path=Path("./bin/server"),
    target="server.go",  # 🎯 指定入口文件
    mirror_enabled=True
)

# 指定子目录编译(cmd 结构)
compiler.build_binary(
    source_dir=Path("./myproject"),
    output_path=Path("./bin/client"),
    target="./cmd/client",  # 📁 指定包路径
    mirror_enabled=True
)

2. 构建 Python 项目

from multi_lang_build import PythonCompiler

compiler = PythonCompiler()

# 自动检测并安装依赖(支持 Poetry/Setuptools/PDM)
compiler.install_dependencies(
    source_dir=Path("./myproject"),
    mirror_enabled=True,
    dev=True
)

# 构建项目
compiler.build(
    source_dir=Path("./myproject"),
    output_dir=Path("./dist"),
    mirror_enabled=True
)

3. 构建前端项目

from multi_lang_build import PnpmCompiler

compiler = PnpmCompiler()

# 自动检测项目根目录(支持子目录调用)
compiler.build(
    source_dir=Path("./packages/ui/src"),  # 即使在子目录也能正确构建
    output_dir=Path("./dist"),
    mirror_enabled=True
)

🎯 IDE 集成

将 multi-lang-build 注册为 IDE 技能,获得更智能的构建体验。

支持的 IDE

IDE 命令 说明
🤖 Claude Code multi-lang-skill claude 默认,AI 助手原生支持
💠 OpenCode multi-lang-skill opencode 智能代码助手集成
🔷 Trae multi-lang-skill trae 字节跳动 AI IDE
🎯 CodeBuddy multi-lang-skill codebuddy 代码伙伴插件

注册 Claude Code(默认)

# 使用独立命令
multi-lang-skill

# 或指定 IDE
multi-lang-skill claude
multi-lang-skill opencode
multi-lang-skill trae
multi-lang-skill codebuddy

# 注册到全局配置
multi-lang-skill claude --global

注册其他 IDE

# 注册到 OpenCode
multi-lang-skill opencode

# 注册到 Trae
multi-lang-skill trae

# 注册到 CodeBuddy
multi-lang-skill codebuddy

# 注册所有 IDE
multi-lang-skill all

注册功能说明

注册命令会将 skill 配置添加到指定 IDE 的配置目录:

IDE 命令 项目级配置 全局配置
🤖 Claude Code multi-lang-skill claude .claude/multi-lang-build.md ~/.claude/multi-lang-build.md
💠 OpenCode multi-lang-skill opencode .opencode/skills.json ~/.config/opencode/skills.json
🔷 Trae multi-lang-skill trae .trae/skills.json ~/.trae/skills.json
🎯 CodeBuddy multi-lang-skill codebuddy .codebuddy/skills.yaml ~/.codebuddy/skills.yaml

注册后,IDE 将自动识别项目类型并提供智能构建建议。

📦 安装

使用 pip 安装

# 基础安装
pip install multi-lang-build

# 开发环境(包含测试工具)
pip install multi-lang-build[dev]

系统要求

  • Python 3.11+
  • 对应语言的构建工具:
    • Go: go 命令
    • Python: python3pip
    • PNPM: pnpmnode

📚 详细文档

语言 文档 说明
🐹 Go go.md 多入口编译、交叉编译、target 参数详解
🐍 Python python.md 依赖管理、虚拟环境、构建系统检测
📦 PNPM pnpm.md 项目根目录检测、Monorepo 支持、镜像配置

🛠️ CLI 命令行

# Go 项目构建(默认实时输出日志)
multi-lang-build go ./myproject --output ./bin/app --mirror

# 指定入口文件编译(cmd 结构)
multi-lang-build go ./myproject --output ./bin/server --target ./cmd/server

# 禁用实时输出
multi-lang-build go ./myproject --output ./bin/app --no-stream

# Python 项目构建
multi-lang-build python ./myproject --output ./dist --mirror

# PNPM 项目构建
multi-lang-build pnpm ./myproject --output ./dist --mirror

# 注册到 IDE(独立命令)
multi-lang-skill                    # 默认 Claude Code
multi-lang-skill opencode
multi-lang-skill trae
multi-lang-skill codebuddy
multi-lang-skill all                # 注册所有 IDE

# 镜像配置
multi-lang-build mirror list              # 列出可用镜像
multi-lang-build mirror set pip           # 配置 pip 镜像
multi-lang-build mirror set go            # 配置 Go 代理
multi-lang-build mirror show              # 查看当前配置

🌟 核心特性对比

特性 GoCompiler PythonCompiler PnpmCompiler
自动检测项目 ✅ go.mod ✅ pyproject.toml/setup.py ✅ package.json
多入口支持 target 参数 ✅ 自动检测
镜像加速 ✅ goproxy.cn ✅ 清华/阿里云等 ✅ npmmirror
CLI 支持 ✅ go-build ✅ python-build ✅ pnpm-build
类型安全 ✅ Type Hints ✅ Type Hints ✅ Type Hints

📝 示例项目

Go 多入口项目

myproject/
├── go.mod
├── server.go          # package main - API 服务
├── client.go          # package main - CLI 工具
└── worker.go          # package main - 后台任务
# 构建所有入口
compiler = GoCompiler()

entries = ["server.go", "client.go", "worker.go"]
for entry in entries:
    name = entry.replace(".go", "")
    compiler.build_binary(
        source_dir=Path("./myproject"),
        output_path=Path(f"./bin/{name}"),
        target=entry
    )

Python Poetry 项目

myproject/
├── pyproject.toml     # Poetry 配置
├── poetry.lock
└── src/
    └── mypackage/
# 一键安装依赖并构建
compiler = PythonCompiler()
compiler.install_dependencies(source_dir=Path("./myproject"), dev=True)
compiler.build(source_dir=Path("./myproject"), output_dir=Path("./dist"))

前端 Monorepo

monorepo/
├── package.json
├── pnpm-workspace.yaml
└── packages/
    ├── ui/
    ├── utils/
    └── app/
# 批量构建所有包
compiler = PnpmCompiler()

for pkg in ["ui", "utils", "app"]:
    compiler.build(
        source_dir=Path(f"./packages/{pkg}"),
        output_dir=Path(f"./packages/{pkg}/dist")
    )

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

MIT © Multi-Lang Build Team


📋 更新日志

v0.4.0 (2026-02-26)

🔧 重构优化

  • Go 构建模块命令检测优化
  • GoDetector / PnpmDetector 检测器支持自动检测命令路径
  • get_go_version() / get_pnpm_version() 支持可选参数,不传则自动检测
  • 构建函数 go_executable 参数改为可选,未传入时自动检测并使用简化命令名 "go"
  • 统一 GoModuleBuilderGoBinaryBuilderGoTester 的 API 设计
  • 执行构建时使用简化命令(如 "go")而非绝对路径,依赖系统 PATH 解析

v0.3.8 (2026-02-25)

✨ 新功能

  • 添加命令数据类型支持,支持四大类命令配置(install/format/lint/build)
  • CommandConfig 类型包含:name, command, stream_output, log_output
  • ProjectCommands 类型支持完整的项目命令配置
  • 新增 run_command(), format(), lint(), run_all_commands() 方法
  • 支持直接传入命令配置数据类型进行构建

🔧 优化

  • 添加 pre-commit 钩子,提交前自动格式化代码
  • 自动修复未使用的导入问题
  • 导入排序和组织优化

v0.3.5 (2026-02-03)

🔧 优化

  • 汉化 multi-lang-skill 命令的帮助信息
  • 统一中文本地化体验

v0.3.1 (2026-02-03)

🔧 重构

  • 使用 loguru 替换 ColorInfo 实现结构化日志
  • 日志格式: [file:line function] message key=value
  • 支持调用者位置追踪

v0.3.0 (2026-02-03)

✨ 新功能

  • 添加 --target CLI 参数,支持指定入口文件编译
  • 构建时自动打印完整构建命令,方便排查问题
  • 下载依赖时显示当前镜像配置信息
  • go mod tidy 命令日志输出

🔧 优化

  • 镜像故障转移机制改进
  • 日志输出更加清晰

v0.2.9 (2026-01-XX)

✨ 新功能

  • Go 镜像自动故障转移(goproxy.io → goproxy.cn → goproxy.vip.cn)
  • Go 编译器模块化重构
  • 添加进度日志

v0.2.0 (2025-09-XX)

✨ 首次发布

  • 支持 Go、Python、PNPM 多语言构建
  • 镜像加速功能
  • IDE 集成注册

用 ❤️ 构建 | 让多语言开发更简单

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

multi_lang_build-0.4.2.tar.gz (51.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

multi_lang_build-0.4.2-py3-none-any.whl (68.5 kB view details)

Uploaded Python 3

File details

Details for the file multi_lang_build-0.4.2.tar.gz.

File metadata

  • Download URL: multi_lang_build-0.4.2.tar.gz
  • Upload date:
  • Size: 51.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for multi_lang_build-0.4.2.tar.gz
Algorithm Hash digest
SHA256 ffb3cb0d2731f64c0f3652b76dc44f7965960b464396b53c40d625f893442136
MD5 1c5a373cf73e37bce80ec02c2c504874
BLAKE2b-256 b7561357564f7156eaa7a5b06e35d62ad562989306ea22dd44d2b295d5efcf93

See more details on using hashes here.

File details

Details for the file multi_lang_build-0.4.2-py3-none-any.whl.

File metadata

File hashes

Hashes for multi_lang_build-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9bd80312f62b9e800f2d3c9ff71b54cb78527b88a9e7c110a23be9d21f183204
MD5 16d4ab9745d7b4c22540ad1630ca7bb2
BLAKE2b-256 642598572f169e20db8418276341bdeaa9182bc51a99c0f0aaf5b2c2b09bb231

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.2 This release

2 files

0.4.1

2 files

0.4.0

2 files

0.3.9

2 files

0.3.6

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.10

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page