根本不存在 composer archive 命令,所有报错均属正常——Composer 官方从未注册该命令,文档自2.2起已移除相关描述,所谓教程多源于混淆第三方插件、git archive 误记或私有脚本。

根本不存在 composer archive 命令,所有报错 Command "archive" is not defined 都是正常的——这不是你操作错了,是 Composer 从没提供过这个功能。
为什么 composer archive 一定失败
执行它必报错,因为:
- Composer 官方源码里从未注册
ArchiveCommand -
composer list输出中永远找不到archive - getcomposer.org 文档自 2.2 起已彻底移除相关描述
- 你看到的“教程”基本来自三类混淆:已废弃的第三方插件(如
hirak/php-archive)、把git archive记成 Composer 命令、或项目里私装的vendor/bin/composer-archive脚本
只打包源码(发布快照):用 git archive
这是最干净、最可复现的方式,前提是项目用 Git 管理,且 .gitignore 正确排除了 vendor/、.env、node_modules/ 等目录。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 先确保
composer.json和composer.lock已git add并提交 - 打 tag:
git tag v1.2.0 && git push origin v1.2.0 - 归档:
git archive --format=zip --output=myapp-1.2.0.zip v1.2.0 - 注意:
git archive默认不包含composer.lock,若需它,得手动加回(比如用git archive+zip补包)
打包含 vendor 的可运行包(开箱即用)
这本质不是“归档”,而是“构建部署包”,必须走标准安装流程:
- 先清理并安装依赖:
composer install --no-dev --optimize-autoloader --no-interaction - 验证关键文件存在:
vendor/autoload.php、入口文件(如public/index.php)、composer.lock - 再用系统命令打包:
tar -czf release.tar.gz . --exclude='.git' --exclude='tests' --exclude='docs' --exclude='.env' - Windows 用户请用 Git Bash 或 WSL;CMD 自带
zip不支持-x排除,不可靠
别碰 composer.json 里的 archive 配置
即使你通过插件“凑出”了能跑的 composer archive,它的行为也极难控制:
- 默认排除
composer.lock,除非硬写"extra": {"archive-includes": ["composer.lock"]},拼错一个字母就失效 - 它只按
autoload路径打包(比如只打src/),但你的配置、迁移、路由文件往往不在 autoload 范围里,一打就丢 - 插件一旦被移除或 Composer 升级,命令立刻消失,而你以为这是“标准功能”
真正可靠的归档,永远建立在明确的步骤上:Git 提交 → 安装依赖 → 系统打包。任何试图绕过这三步的“快捷方式”,最终都会卡在路径、权限或环境差异上。

















