用于生产和暂存/开发的不同 composer.json 文件



场景:

我有一个现有的实时站点,该站点通过dev-master上的几个 GIT 存储库加载作曲家依赖项。

来自客户端的新功能

请求,在我将其从开发合并到主服务器之前,我需要将新的(未完成的)功能部署到暂存环境,以便在推送之前从客户端获得确定(我可能需要向客户端展示新功能的早期版本,根本没有准备好主功能)。

我通常通过 capistrano 部署东西(我猜这并没有什么区别)。

我不能将require-dev用于新代码,因为它可能是需要重构的现有插件。

理想情况下,我可以在暂存/开发环境中对插件使用 dev-developdev-master用于实时环境,但不可能在同一个 composer.json 文件中两次使用相同的存储库。

我怎样才能做到这一点?

解决方案是使用环境变量。

我有 2 个composer.json文件(还有 2 个composer.lock文件)。我命名的第二个composer-dev.json(这将随后生成一个名为 composer-dev.lock 的锁文件)。

在我的 capistrano 部署配置中,我添加了舞台服务器

set :default_env, {
    'COMPOSER' => 'composer-dev.json'
}

我可以在本地机器上动态定义环境变量,如下所示:

$ COMPOSER=composer-dev.json composer update

这将生成composer-dev.lock文件,然后我可以部署到暂存服务器。

当然,我可以在暂存服务器上配置环境,在我的 capistrano 配置中似乎更容易。

相关内容

  • 没有找到相关文章

最新更新