如何强制 composer dump-autoload 从头开始?
How do I force composer dump-autoload to start from scratch?
我应该手动删除的确切文件集是什么,以确保后续调用 composer dump-autoload
的行为与在刚刚 composer install
ed,但以前从未 dump-autoload
ed?
我正在尝试重现和调试 composer dump-autoload
命令作为 docker 图像构建的一部分执行期间出现的问题。
我想避免在寻找解决方案的迭代过程中实际 运行 构建 docker 数十次的缓慢。
每次删除整个 vendor/
目录并重做 composer install
也是次优的。
它总是从 "scratch" 开始运行。但我想如果你想更加确定,你可以简单地删除以前生成的文件。
创建的文件是 vendor/autoload.php
,还有一些在 vendor/composer
,因此您可以在重新转储自动加载器之前手动删除它们。
这些是刚从 composer install --no-autoloader
:
中取出的那个目录的内容
└── vendor/
└── composer/
├── semver/
├── xdebug-handler/
├── installed.json
└── LICENSE
这些是 运行 composer dump-autoload
:
之后的内容
├── vendor/
│ └── composer/
│ ├── semver/
│ ├── xdebug-handler/
│ ├── autoload_classmap.php
│ ├── autoload_files.php
│ ├── autoload_namespaces.php
│ ├── autoload_psr4.php
│ ├── autoload_real.php
│ ├── autoload_static.php
│ ├── installed.json
│ └── LICENSE
└── autoload.php
所以你基本上只需要删除
vendor/autoload.php
vendor/composer/autoload_*
vendor/composer/ClassLoader.php
您可以从原始起点重新运行 composer dump-autoload
。
我应该手动删除的确切文件集是什么,以确保后续调用 composer dump-autoload
的行为与在刚刚 composer install
ed,但以前从未 dump-autoload
ed?
我正在尝试重现和调试 composer dump-autoload
命令作为 docker 图像构建的一部分执行期间出现的问题。
我想避免在寻找解决方案的迭代过程中实际 运行 构建 docker 数十次的缓慢。
每次删除整个 vendor/
目录并重做 composer install
也是次优的。
它总是从 "scratch" 开始运行。但我想如果你想更加确定,你可以简单地删除以前生成的文件。
创建的文件是 vendor/autoload.php
,还有一些在 vendor/composer
,因此您可以在重新转储自动加载器之前手动删除它们。
这些是刚从 composer install --no-autoloader
:
└── vendor/
└── composer/
├── semver/
├── xdebug-handler/
├── installed.json
└── LICENSE
这些是 运行 composer dump-autoload
:
├── vendor/
│ └── composer/
│ ├── semver/
│ ├── xdebug-handler/
│ ├── autoload_classmap.php
│ ├── autoload_files.php
│ ├── autoload_namespaces.php
│ ├── autoload_psr4.php
│ ├── autoload_real.php
│ ├── autoload_static.php
│ ├── installed.json
│ └── LICENSE
└── autoload.php
所以你基本上只需要删除
vendor/autoload.php
vendor/composer/autoload_*
vendor/composer/ClassLoader.php
您可以从原始起点重新运行 composer dump-autoload
。