"exclude-from-classmap" 仅影响 classmap 自动加载,用于排除指定路径不写入类映射缓存;需置于 autoload 对象内,支持 和 * 通配符,路径末尾加 / 推荐以明确匹配目录。

在 composer.json 中,可以通过 "exclude-from-classmap" 配置项来排除某些文件或目录,防止它们被 Composer 的自动加载机制(尤其是 classmap 生成)扫描和加载。
作用范围明确
这个配置只影响 "classmap" 类型的自动加载(包括通过 composer dump-autoload --optimize 生成的优化类映射),对 psr-4、psr-0 或 files 加载方式无效。它不是“禁止加载”,而是“不把它们写进 classmap 缓存里”。
语法格式:数组形式,支持通配符
值必须是字符串数组,每个元素是相对于项目根目录的路径,支持 * 和 **:
-
*匹配当前层级任意文件或目录名(不递归) -
**匹配任意层级的子目录(递归) - 路径末尾加
/表示只匹配目录(推荐,避免误伤同名文件)
常见使用示例
比如你想排除测试文件、文档、资源目录等,可以这样写:
"autoload": {
"classmap": ["src/", "lib/"],
"exclude-from-classmap": [
"tests/",
"docs/",
"resources/",
"examples/",
"*/Test.php",
"src/Deprecated/**"
]
}登录后复制
注意:"exclude-from-classmap" 必须放在 "autoload" 对象内,不能放在顶层。
标签: php js json composer 字符串数组
还木有评论哦,快来抢沙发吧~