Php Laravel:用于开发和生产的不同composer.json文件

Php Laravel:用于开发和生产的不同composer.json文件,php,laravel,composer-php,Php,Laravel,Composer Php,我需要为dev和production创建两个不同的composer.json文件,因为我正在开发供应商软件包(本地),并且希望在开发环境中保持供应商软件包的符号链接,因为这样更易于维护 composer.json文件包含: 对于开发,它具有按路径进行符号链接的存储库 对于生产,它在github上有私有存储库 注意:供应商软件包位于require,而不是require dev。。。因此,编写器更新--no dev将不起作用 我该怎么设置呢 通常,.env文件是设置不同环境变量的地方。有没有一种

我需要为
dev
production
创建两个不同的
composer.json
文件,因为我正在开发供应商软件包(本地),并且希望在开发环境中保持供应商软件包的符号链接,因为这样更易于维护

composer.json
文件包含:

  • 对于开发,它具有按路径进行符号链接的存储库
  • 对于生产,它在github上有私有存储库
注意:供应商软件包位于
require
,而不是
require dev
。。。因此,编写器更新--no dev将不起作用

我该怎么设置呢

通常,
.env
文件是设置不同环境变量的地方。有没有一种方法可以设置一个
COMPOSER\u PATH
变量,该变量将指向prod或dev上的两个不同文件?

您可以使用多个COMPOSER文件,如
COMPOSER.json
COMPOSER testing.json
,并在具有以下功能的终端中使用它:

COMPOSER=composer-testing.json php composer.phar install

假设签入了您的
composer.json
,可能会在dev中使用不同的分支?您可能会在dev环境中安装不同于生产环境的依赖项。您将失去
composer.lock
的主要优势。好主意@adam,thx@rob006,我没有看到任何主要的缺点:prod将使用
composer.lock
和dev
composer测试.lock。我还遗漏了什么吗?你可以继续使用同一把锁。开发锁定的唯一区别是开发中的第一方(您的)供应商包。锁定的目的是检查第三方供应商的软件包。