composer dump-autoload --no-dev 报错问题
问题描述
“autoloader文件” 是指 vendor/composer/ 下的那几个 以autoload_ 开头的文件。
我想观察下 composer dump-autoload 执行后 autoloader文件中的变化情况,所以新创建了一个laravel项目,然后执行 dump-autoload 命令,并且分别尝试了 -o 和 –no-dev命令选项。先是执行了 composer dump-autoload 没有报错(autoloader文件中有变化,没啥影响,只是位置信息的变化),然后执行composer dump-autoload -o 也没用问题,然后执行 composer dump-autoload –no-dev 就提示某些类找不到。后来也尝试了 composer dump-autoload -o –no-dev,也试了重新创建了新项目直接执行 composer dump-autoload –no-dev 还是不行。
发现
composer dump-autoload –no-dev 执行后 Facade\Ignition 命名空间对应的映射关系 在 autoloader文件中消失了,但是 Facade\Ignition 命名空间并非在 autoload-dev 块中。
facade/ignition 包的json文件(没有改动过):
{
"name": "facade/ignition",
"description": "A beautiful error page for Laravel applications.",
"keywords": [
"error",
"page",
"laravel",
"flare"
],
"homepage": "https://github.com/facade/ignition",
"license": "MIT",
"require": {
"php": "^7.2.5|^8.0",
"ext-json": "*",
"ext-mbstring": "*",
"facade/flare-client-php": "^1.9.1",
"facade/ignition-contracts": "^1.0.2",
"illuminate/support": "^7.0|^8.0",
"monolog/monolog": "^2.0",
"symfony/console": "^5.0",
"symfony/var-dumper": "^5.0",
"ext-curl": "*"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.14",
"livewire/livewire": "^2.4",
"mockery/mockery": "^1.3",
"orchestra/testbench": "^5.0|^6.0",
"psalm/plugin-laravel": "^1.2"
},
"suggest": {
"laravel/telescope": "^3.1"
},
"config": {
"sort-packages": true
},
"extra": {
"branch-alias": {
"dev-master": "2.x-dev"
},
"laravel": {
"providers": [
"Facade\\Ignition\\IgnitionServiceProvider"
],
"aliases": {
"Flare": "Facade\\Ignition\\Facades\\Flare"
}
}
},
"autoload": {
"psr-4": {
"Facade\\Ignition\\": "src"
},
"files": [
"src/helpers.php"
]
},
"autoload-dev": {
"psr-4": {
"Facade\\Ignition\\Tests\\": "tests"
}
},
"minimum-stability": "dev",
"prefer-stable": true,
"scripts": {
"psalm": "vendor/bin/psalm",
"format": "vendor/bin/php-cs-fixer fix --allow-risky=yes",
"test": "vendor/bin/phpunit",
"test-coverage": "vendor/bin/phpunit --coverage-html coverage"
},
"support": {
"issues": "https://github.com/facade/ignition/issues",
"forum": "https://twitter.com/flareappio",
"source": "https://github.com/facade/ignition",
"docs": "https://flareapp.io/docs/ignition-for-laravel/introduction"
}
}
版本信息
laravel: 8.6.12
php: 7.4.3
composer: 2.4.4
问题重现
composer create-project "laravel/laravel:8.6.12" ./
composer dump-autoload --no-dev
报错信息
其他描述
其实不光是这一个版本,其他版本也有类似的问题。希望大家能帮忙看下,谢谢!
dump-autoload 是更新自动加载文件的映射,你安装
composer
包了吗?