使用.gitattributes文件中的export-ignore规则可排除文件,如/tests、/docs、*.md等,保存后运行composer archive --format=zip --dir=build/即可生成不含指定内容的归档包。

使用 composer archive 命令打包项目时,默认会包含项目中所有符合版本控制规则的文件。如果你希望排除某些特定文件或目录,不能直接通过命令参数实现,但可以通过以下方式间接控制归档内容。
1. 使用 .gitattributes 文件(推荐)
如果项目使用 Git 管理,Composer 会读取 .gitattributes 文件中的 export-ignore 规则来决定哪些文件不包含在归档中。
在项目根目录创建或编辑 .gitattributes 文件,添加要排除的文件或目录:
-
/tests export-ignore—— 排除 tests 目录 -
/docs export-ignore—— 排除 docs 目录 -
composer.json export-ignore—— 排除某个文件 -
*.md export-ignore—— 排除所有 .md 文件
保存后执行:
composer archive --format=zip --dir=build/
生成的压缩包将不再包含被标记为 export-ignore 的内容。
2. 使用 .artifactignore(部分环境支持)
若需更精细控制,可先用 composer install 构建干净目录,再通过 tar 或 zip 命令手动打包并排除指定内容。
示例(Linux/macOS):
composer install --no-dev zip -r release.zip . \ -x "tests/*" \ -x "docs/*" \ -x "*.git*" \ -x "var/*"
这样可以完全掌控归档内容。
基本上就这些。Composer 自身依赖 Git 属性做排除,所以最标准的方式是配置好 .gitattributes。只要写对规则,archive 命令就会自动生效。










