如何在composer.json中排除某些文件或目录被自动加载?(exclude-from-classmap)

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

如何在composer.json中排除某些文件或目录被自动加载?(exclude-from-classmap)-第1张图片-佛山资讯网

composer.json 中,可以通过 "exclude-from-classmap" 配置项来排除某些文件或目录,防止它们被 Composer 的自动加载机制(尤其是 classmap 生成)扫描和加载。

作用范围明确

这个配置只影响 "classmap" 类型的自动加载(包括通过 composer dump-autoload --optimize 生成的优化类映射),对 psr-4psr-0files 加载方式无效。它不是“禁止加载”,而是“不把它们写进 classmap 缓存里”。

语法格式:数组形式,支持通配符

值必须是字符串数组,每个元素是相对于项目根目录的路径,支持 ***

  • * 匹配当前层级任意文件或目录名(不递归)
  • ** 匹配任意层级的子目录(递归)
  • 路径末尾加 / 表示只匹配目录(推荐,避免误伤同名文件)

常见使用示例

比如你想排除测试文件、文档、资源目录等,可以这样写:

"autoload": {
  "classmap": ["src/", "lib/"],
  "exclude-from-classmap": [
    "tests/",
    "docs/",
    "resources/",
    "examples/",
    "*/Test.php",
    "src/Deprecated/**"
  ]
}

登录后复制

注意:"exclude-from-classmap" 必须放在 "autoload" 对象内,不能放在顶层。

标签: php js json composer 字符串数组

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~