Composer autoload-dev无法正常工作

Jos*_*ius 5 php git composer-php packagist

文件autoload_psr4.php不包含“ autoload-dev”部分中的名称空间,仅包含“ autoload”部分中的名称空间。

当我的composer.json读取时

"autoload": {
    "psr-4": {
        "Namespace\\": "src/"
    }
},
"autoload-dev": {
    "prs-4": {
        "Namespace\\Tests\\": "tests/"
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我跑

composer require vendor/namespace 1.0-dev
Run Code Online (Sandbox Code Playgroud)

我的/vendor/composer/autoload_prs4.php文件显示为

// autoload_psr4.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'Namespace\\' => array($baseDir . '/src'),
);
Run Code Online (Sandbox Code Playgroud)

谢谢!

rin*_*ahn 10

由于这是搜索“autoload-dev notworking”时的第一个搜索引擎结果:在composer.json中,如果"autoload-dev"在定义和使用后添加"autoload",则运行$ composer dump-autoload


Wou*_*r J 5

我的猜测是,你显示composer.jsonvendor/namespace包。如果是这样的话:

看一下docs。它说:“ autoload-dev(仅root用户)”。仅root意味着它仅适用于root软件包。包含软件包时,显示的composer.json文件不是根软件包,autoload-dev因此将忽略此部分。