Composer的archive命令可将包打包为tar或zip文件,用于发布或部署。它依据composer.json配置生成归档,支持指定格式、输出目录和文件名,遵循.gitignore和export-ignore规则过滤文件,默认不包含vendor目录,可通过"archive.exclude"配置排除特定路径。示例命令:composer archive . --format=zip --dir=build --file=release,生成build/release.zip。适用于轻量级发布,复杂场景建议结合构建工具。

Composer 的 archive 命令可以将一个 Composer 包打包成压缩文件(如 tar 或 zip),通常用于发布、备份或部署项目。它不是用来打包整个项目目录的工具,而是基于已定义的包信息(如 composer.json 中的配置)来生成归档文件。
基本用法
执行以下命令可以为当前项目或指定包创建归档:-
composer archive . --format=zip --dir=./dist:将当前项目打包为 zip 文件,输出到 dist 目录。 -
composer archive vendor/package-name --format=tar --version=dev-main:打包远程包的某个版本。
参数说明:
- . 表示当前项目(必须有 composer.json)
- --format 指定格式,支持 zip 和 tar(可加 gz 后缀)
- --dir 指定输出目录,默认在当前目录生成
- --file 可自定义文件名(不含扩展名,Composer 会自动加格式后缀)
注意被打包的内容
Composer archive 打包时会遵循以下规则过滤文件:- 读取 .gitignore 和 .gitattributes 文件中的 export-ignore 规则
- 只包含 source-type 为 source 的包(如本地项目或 git 克隆的开发包)
- 不会包含 vendor 目录(除非手动添加)
"archive": {
"exclude": [
"/tests",
"/docs",
"/*.md"
]
}
实际操作示例
假设你想把当前项目打包成 release.zip:- 确保 composer.json 存在且正确
- 运行命令:
composer archive . --format=zip --dir=build --file=release - 生成文件路径为:
build/release.zip
- 解压 zip 文件,确认包含 src、config 等必要目录
- 检查是否遗漏重要文件或误包含日志、缓存等
基本上就这些。使用 archive 命令适合轻量级发布,若需更复杂构建流程(如编译、替换配置),建议结合脚本或使用专门的构建工具。










