Php 防止重新安装编写器更新
我有一个Laravel项目,有一些依赖项。其中一个依赖项是我们自己的包。我需要做那个包裹的工作。设置是将我们的包符号链接到git存储库 供应商/acme/ourpackage->~/ourpackagerepoPhp 防止重新安装编写器更新,php,laravel,git,github,composer-php,Php,Laravel,Git,Github,Composer Php,我有一个Laravel项目,有一些依赖项。其中一个依赖项是我们自己的包。我需要做那个包裹的工作。设置是将我们的包符号链接到git存储库 供应商/acme/ourpackage->~/ourpackagerepo 我在存储库中进行更改,提交,然后在父级中运行Composer update以获得更新的Composer.lock。这过去很管用。但在我们从Gitlab迁移到Github之后,composer update acme/ourpackage会: 删除acme/ourpackage(开发功能
我在存储库中进行更改,提交,然后在父级中运行Composer update以获得更新的Composer.lock。这过去很管用。但在我们从Gitlab迁移到Github之后,
composer update acme/ourpackage
会:
- 删除acme/ourpackage(开发功能/fixedinformationlog fae89ac)
- 安装acme/ourpackage(开发功能/fixedinformationlog 9bd7d4d):
"repositories": [{
"type": "vcs",
"url": "git@github.com:acme/package.git"
"config": {
"preferred-install": "dist",
"platform": {
"php": "7.0.12"
},
"use-github-api": false
关于如何让composer只更新,或者不更新文件而只更新composer.lock,你有什么想法吗?我想你有几个选择: 1.编写器存储库路径 如图所示,您可以使用路径存储库。这是为了解决通常不属于VCS(如Git等版本控制系统)或文件工件的情况。根据文档,您可以这样使用它:
{
"repositories": [
{
"type": "path",
"url": "../../packages/my-package",
"options": {
"symlink": true
}
}
],
"require": {
"my/package": "*"
}
}
需要注意的最重要的部分是:
如果可能,本地包将被符号链接,在这种情况下
控制台中的输出将从中读取符号链接
../../packages/my packages。如果无法进行符号链接,则该软件包
将被复制。在这种情况下,控制台将从镜像输出
../../packages/my packages
您可以强制使用符号链接,而不是默认的回退策略
“symlink”:true或使用“symlink”:false选项进行镜像。强迫
在部署或从中生成包时,镜像非常有用
整体存储库
这个选择对我来说是最有意义的,也是我个人的选择
2.多个编写器使用环境变量配置
另一个选项是使用COMPOSER
环境变量。这将允许您加载与默认命名文件不同的composer.json
文件。因此,您可能有两个文件,根据环境变量的设置,它将加载相应的文件并创建匹配的锁定文件:
- composer.json
- composer-dev.json
其他阅读/资源: