Composer的archive命令可将项目打包为tar或zip格式,用于发布稳定版本或部署。支持指定包名、版本、输出格式及目录,如composer archive --format=zip --dir=./dist。通过composer.json中的archive.exclude配置可排除文件,还可打包远程包如monolog/monolog。

Composer 的 archive 命令可以将项目打包成压缩文件,常用于发布稳定版本或构建部署包。它会根据 composer.json 中的配置,导出指定版本的代码并打包为 tar 或 zip 格式。
基本用法
使用 composer archive 命令的基本格式如下:
composer archive [package] [version] [--format=zip|tar] [--dir=/path/to/output]说明:
- package:要打包的包名(可选,默认为当前项目)
- version:指定版本(如 dev-main、v1.0.0 等)
- --format:输出格式,支持 zip 和 tar
- --dir:指定输出目录
打包当前项目示例
在项目根目录下运行以下命令,打包当前项目为 zip 文件:
composer archive --format=zip执行后,会在当前目录生成类似 projectname-1.0.0.zip 的文件(版本号取自 composer.json)。
若想将包输出到指定目录:
composer archive --format=zip --dir=./dist这会把打包文件保存到 ./dist 目录中。
排除文件或目录
打包时可能希望跳过某些文件(如测试文件、文档等)。可以通过 archive 配置在 composer.json 中定义排除规则:
支持通配符和目录匹配,常见写法:
-
/dir/:排除整个目录 -
/*.ext:排除某类文件 -
!keep.txt:使用感叹号保留特定文件(不支持所有版本)
打包远程包(可选)
你也可以打包 Packagist 上的其他包:
composer archive monolog/monolog 2.0.0 --format=tar该命令会下载 monolog 的 2.0.0 版本并打包为 tar 文件。
注意:此操作依赖本地已安装或能访问该包。
基本上就这些。合理使用 archive 命令可以帮助你快速生成轻量部署包,特别适合无 Composer 环境的发布场景。










