【发布时间】:2016-10-11 09:06:10
【问题描述】:
我的目标是将composer.json 文件提交到我们的项目存储库,该文件指定应该为该项目使用哪些主题或插件,并且当开发人员拉下存储库时,他们需要做的就是运行作曲家安装。我们希望将插件排除在项目 repo 之外,以阻止项目 repo 的膨胀以及拉取和推送变得缓慢。
对于标准的 wordpress 插件,例如“WordPress.com 的 Jetpack”,这很好,因为我们将使用 https://wpackagist.org/。但是,对于无法开源的高级插件和内部定制插件,我们希望将它们托管在 Private Composer 存储库中。
因为我们将有这些插件的多个版本,所以我希望所有版本都显示,例如 1.1、1.2、1.3,以便开发人员可以在 composer.json 中指定需要哪个版本,例如如果未来的版本出现问题,我们需要回滚到以前的版本。
我已经阅读了设置 Satis 私有存储库的基础知识,我已经这样做了,但是我无法让它循环遍历版本的 git 标签并指定它是一个 Wordpress 插件并将其安装在正确的位置.
这是我第一次尝试获取所有带有 git 标记的版本:
{
"name": "Private Repository",
"homepage": "http://packages.privaterepo.com",
"repositories": [
{
"type": "vcs",
"url": "git@bitbucket.org:companyname/project.git"
}
],
"require-all": true
}
这是我必须指定版本但将其安装在正确的 Wordpress 插件位置的地方:
{
"name": "Private Repository",
"homepage": "http://packages.privaterepo.com",
"repositories": [
{
"type": "package",
"package": {
"name": "company/project",
"description": "WordPress Plugin",
"version": "1.0",
"source": {
"type": "git",
"url": "git@bitbucket.org:company/project.git",
"reference": "origin/master"
},
"type": "wordpress-plugin",
"require": {
"php": ">=5.3.2",
"composer/installers": "*"
}
}
}
],
"require-all": true,
"require-dependencies": true,
"extra": {
"installer-paths": {
"wp-content/plugins/{$name}/": ["type:wordpress-plugin"]
}
}
}
谁能告诉我如何让这两个场景一起工作?
【问题讨论】:
-
我做的事情和你非常相似,我能看到的唯一区别是我不使用 require-all 我一个一个地要求它们(所以“要求”:{ 然后是一个列表) .这对我来说很好,私人插件与 wpackagist 等一起安装......
-
你指的是第一个还是第二个版本的代码?
-
对不起菲尔,第二个。而对于参考源下)我正在使用标签。
-
谢谢西蒙认为我在正确的轨道上,你能给我一个你在源代码下提到的标签的例子。我认为这里唯一的问题是我需要为每个插件的每个版本更新 satis.json 文件,对于像我这样的大型团队来说,这将成为我试图避免的日常任务。相反,我只想让它自动读取 Git 标签。如果这是您正在做的事情,请发送示例。
-
啊,我在一个大的作曲家文件中为每个插件获取了特定的标签。所以不确定它实际上对你有什么用处。我的文件用于一个网站,并引入了多个插件等...我认为您所做的与此不同。
标签: php wordpress git composer-php satis