Composer的archive命令可将项目按composer.json配置打包为.tar或.zip格式,默认使用当前版本号生成如my-project-1.0.0.tar的文件名,支持通过–format指定压缩类型、–dir设置输出路径、–version定义版本号,并能通过.gitattributes文件中的export-ignore规则排除特定文件,适用于发布不含依赖的干净代码包。
Composer 的 archive 命令用于将项目打包成压缩文件,常用于发布或分发某个版本的代码。它不会打包整个目录,而是根据 composer.json 中的配置生成一个干净的归档包。
基本用法
运行以下命令可以打包当前项目:
composer archive
默认情况下,该命令会:
- 使用当前项目的版本(从 composer.json 中读取)
- 生成一个 .tar 格式的压缩包(也可以指定 zip)
- 文件名格式为:项目名称 + 版本号 + 后缀,例如:my-project-1.0.0.tar
指定格式和路径
你可以自定义打包的格式和输出目录:
composer archive –format=zip –dir=dist/
说明:
- –format:可选 tar 或 zip,决定压缩包类型
- –dir:指定输出目录,这里会把包生成到 dist/ 文件夹下
打包指定版本
如果你想打包某个特定版本(前提是版本在 composer.json 中已定义):
composer archive –version=1.2.3
这会强制使用 1.2.3 版本号生成包名,即使当前 composer.json 中不是这个版本。
排除文件的方法
打包时,Composer 会自动忽略 .git、vendor 等目录,但你也可以通过 .gitattributes 文件控制哪些文件不被打包:
/tests export-ignore
/example export-ignore
*.log export-ignore
只要项目根目录有 .gitattributes 文件,并写入上述规则,archive 命令就会遵循这些排除规则。
基本上就这些。Composer archive 适合快速导出可发布的项目快照,特别适用于私有包或部署场景。注意它只打包源码,不包含依赖(vendor 目录需自行安装)。