您好,欢迎访问宜昌市隼壹珍商贸有限公司
400 890 5375--dev 依赖是仅用于开发、测试、构建阶段的包,写入 composer.json 的 require-dev 字段,如 PHPUnit、PHPStan;生产部署应使用 composer install --no-dev 跳过它们,避免体积增大、安全风险和性能影响。
Composer 的 --dev 选项用于明确声明某个包是仅在开发阶段需要的依赖,不会被部署到生产环境。
使用 composer require package-name --dev 安装的包,会被写入 composer.json 的 require-dev 字段,而非 require 字段。这类包通常包括测试工具(如 PHPUnit)、代码检查器(如 PHPStan、PHP_CodeSniffer)、本地开发服务器(如 Laravel Sail)、或调试辅助工具(如 laravel/tinker)。
它们对应用运行本身没有影响,只在开发、测试、构建阶段起作用。
默认情况下,composer install 或 composer update 会同时安装 require 和 require-dev 中的包。但你可以通过加参数控制:
composer install --no-dev:跳过 require-dev 中的所有包,只装生产依赖 —— 这是上线部署的标准做法composer install(不带参数):安装全部依赖,适合本地开发composer update --no-dev:更新时忽略开发依赖,防止误升级测试相关工具打开项目根目录下的 composer.json,查看两个字段:
"require":列在这里的包是运行必需的,比如 "monolog/monolog"、"guzzlehttp/guzzle"
"require-dev":列在这里的是开发专用,比如 "phpunit/phpunit"、"fakerphp/faker"
执行 composer show --dev 可以只列出当前已安装的开发依赖;而 composer show 显示全部。
如果把本该是开发用的包(比如测试框架)误装进 require,会导致:
--no-dev,可能因开发依赖冲突导致构建失败