composer 如何处理不同环境(开发、测试、生产)的不同依赖?

21次阅读

composer通过 require-dev 分离开发依赖,并结合 环境变量 配置文件 及部署命令实现多环境依赖管理,如生产环境使用 –no-dev 优化加载。

composer 如何处理不同环境(开发、测试、生产)的不同依赖?

Composer 本身不直接提供多环境依赖管理机制,但可以通过组合使用 composer.json 配置 脚本命令 环境条件判断 来实现不同环境加载不同依赖。以下是常见做法:

1. 使用 require-dev 区分开发依赖

Composer 原生支持通过 requirerequire-dev 分离生产与开发依赖。

  • require:所有环境都需要的包(如框架核心)
  • require-dev:仅开发 / 测试时需要的 工具(如 phpUnit、PHPStan)

json 文件按环境拆分 配置文件,例如:

  • composer.json(基础依赖)
  • composer-dev.json
  • composer-prod.json

php -r “file_put_contents(‘composer.json’, json_encode(array_replace_recursive(json_decode(file_get_contents(‘composer.json’), true), json_decode(file_get_contents(‘composer-prod.json’), true)), JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));”

再运行 composer install

composer 如何处理不同环境(开发、测试、生产)的不同依赖?

依图语音开放平台

依图语音开放平台

composer 如何处理不同环境(开发、测试、生产)的不同依赖? 6

查看详情 composer 如何处理不同环境(开发、测试、生产)的不同依赖?

3. 利用脚本动态加载配置

环境变量调整行为:

"scripts": {"pre-install-cmd": "MyScriptEnvLoader::load"}

通过 config.platform 指定 PHP 版本或扩展,使 Composer 在不同机器上解析相同依赖:

"config": {"platform": {     "php": "8.1.0"} }

工具 执行环境化命令 classmap-authoritative

classcomposerjsjsonmapphprequire工具 开发环境 环境变量 配置文件

站长
版权声明:本站原创文章,由 站长 2025-11-11发表,共计872字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources