Git 使用Composer路径库和合并插件开发,如何避免Composer.lock的更新?
情况是这样的 我正在开发a包,它依赖于b包。后者托管在bitbucket上:Git 使用Composer路径库和合并插件开发,如何避免Composer.lock的更新?,git,composer-php,development-environment,dependency-management,Git,Composer Php,Development Environment,Dependency Management,情况是这样的 我正在开发a包,它依赖于b包。后者托管在bitbucket上: projects/ ├── package-a/ ├── package-b/ 我需要对package-b进行更改并查看结果,而无需推送代码,然后执行编写器更新,然后在完成工作时,我将推送一个新标记并将package-a部署到生产服务器 因此,我最终使用了和,配置如下: 以下是a包的composer.json: 此文件将包括composer.local.json(仅在我的本地计算机中!此文件未提交或推送到生产服务器)
projects/
├── package-a/
├── package-b/
我需要对package-b进行更改并查看结果,而无需推送代码,然后执行编写器更新
,然后在完成工作时,我将推送一个新标记并将package-a部署到生产服务器
因此,我最终使用了和,配置如下:
以下是a包的composer.json
:
此文件将包括composer.local.json
(仅在我的本地计算机中!此文件未提交或推送到生产服务器),其中我说的是“使用开发人员主版本和路径存储库”:
如果我从package-a运行composer安装
,那么package-b是符号链接的,我可以直接对其进行操作,从这个意义上说,安装是很好的
但是,当我使用(也控制composer.lock
文件的版本)将package-a部署到服务器时,它会执行composer安装,但lock文件包含对package的引用-b@dev-master使用路径存储库(这是错误的)
你知道怎么解决这个问题吗?我确信这是一个普通的,但我不能得到它。为了帮助开发软件包,您可以使用
包-a内部文件
:
rm -rf vendor/package-b
composer update --prefer-source package-b
这应该将package-b
克隆到vendor
目录中。从那里,您可以在vendor/package-b
中进行更改,并查看反映在当前应用程序中的更改(package-a
)
当您对包b中的更改感到满意时,可以关闭提交更改。您的package-b
工作将完成
在部署package-a
之前,您需要确保composer.lock
文件中引用的project-b
提交已推送到远程(您所说的bitbucket)并且是最新的
您甚至可能根本不需要单独签出project-b
。在project-a
中执行任何需要的工作。(只是一种可能性)
有一件事会让你的生活变得非常轻松,那就是开始标记你的软件包的发布版本
与其追逐单独的移动目标,不如开始考虑需要添加到package-b
中的功能,以使package-a
中的新功能发挥作用。。。添加该功能,然后释放它。然后您对package-a
的工作是“更新到package-b
的新版本,这样我就可以使用很酷的新功能x
”
它将帮助您的发布过程,改进功能规划,并且通常会带来更干净的体验
{
"require": {
"my/package-b": "dev-master"
},
"repositories": [
{
"type": "path",
"url": "../package-b"
}
]
}
rm -rf vendor/package-b
composer update --prefer-source package-b